{
  "components": {
    "schemas": {
      "AcneIn": {
        "properties": {
          "assessed_on": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessed On"
          },
          "clinician": {
            "title": "Clinician",
            "type": "string"
          },
          "iga_grade": {
            "maximum": 4.0,
            "minimum": 0.0,
            "title": "Iga Grade",
            "type": "integer"
          },
          "inflammatory_count": {
            "anyOf": [
              {
                "maximum": 999.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Inflammatory Count"
          },
          "nodule_count": {
            "anyOf": [
              {
                "maximum": 999.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nodule Count"
          },
          "noninflammatory_count": {
            "anyOf": [
              {
                "maximum": 999.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Noninflammatory Count"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "scarring": {
            "default": false,
            "title": "Scarring",
            "type": "boolean"
          },
          "sites": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 4,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sites"
          }
        },
        "required": [
          "clinician",
          "iga_grade"
        ],
        "title": "AcneIn",
        "type": "object"
      },
      "ActionIn": {
        "properties": {
          "action_taken": {
            "maxLength": 4000,
            "title": "Action Taken",
            "type": "string"
          },
          "clinician": {
            "title": "Clinician",
            "type": "string"
          },
          "link_kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "referral | order | message | note | appointment | none",
            "title": "Link Kind"
          }
        },
        "required": [
          "clinician",
          "action_taken"
        ],
        "title": "ActionIn",
        "type": "object"
      },
      "AdtError": {
        "properties": {
          "code": {
            "description": "hl7_unreadable | missing_control_id | invalid_date",
            "examples": [
              "invalid_date"
            ],
            "title": "Code",
            "type": "string"
          },
          "message": {
            "description": "1-based position of the message in your batch.",
            "examples": [
              3
            ],
            "title": "Message",
            "type": "integer"
          }
        },
        "required": [
          "message",
          "code"
        ],
        "title": "AdtError",
        "type": "object"
      },
      "AdtIngestResponse": {
        "properties": {
          "duplicates": {
            "description": "MSH-10 control ids already received (not recorded again).",
            "examples": [
              0
            ],
            "title": "Duplicates",
            "type": "integer"
          },
          "episodes_enrolled": {
            "description": "Post-discharge episodes opened by an A03 (hospitals).",
            "examples": [
              1
            ],
            "title": "Episodes Enrolled",
            "type": "integer"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/AdtError"
            },
            "title": "Errors",
            "type": "array"
          },
          "ignored": {
            "description": "Not an A01 / A02 / A03 / A04-ED message.",
            "examples": [
              0
            ],
            "title": "Ignored",
            "type": "integer"
          },
          "matched": {
            "description": "Matched to exactly one of your linked patients on MRN + date of birth (or full name + date of birth); never guessed.",
            "examples": [
              2
            ],
            "title": "Matched",
            "type": "integer"
          },
          "parsed": {
            "examples": [
              3
            ],
            "title": "Parsed",
            "type": "integer"
          },
          "posture": {
            "title": "Posture",
            "type": "string"
          },
          "received": {
            "description": "Messages found in the batch (readable or not).",
            "examples": [
              3
            ],
            "title": "Received",
            "type": "integer"
          },
          "recorded": {
            "description": "New notices recorded (matched + unmatched).",
            "examples": [
              3
            ],
            "title": "Recorded",
            "type": "integer"
          },
          "returns_recorded": {
            "description": "Readmissions / ED returns recorded against an open episode.",
            "examples": [
              0
            ],
            "title": "Returns Recorded",
            "type": "integer"
          },
          "unmatched": {
            "description": "Held for your staff's review queue in Norvya.",
            "examples": [
              1
            ],
            "title": "Unmatched",
            "type": "integer"
          }
        },
        "required": [
          "received",
          "parsed",
          "recorded",
          "matched",
          "unmatched",
          "duplicates",
          "ignored",
          "episodes_enrolled",
          "returns_recorded",
          "posture"
        ],
        "title": "AdtIngestResponse",
        "type": "object"
      },
      "AdverseEventIn": {
        "properties": {
          "actions_taken": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actions Taken"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "event_type": {
            "description": "vascular_occlusion | visual_disturbance | distant_toxin_spread | eyelid_or_brow_droop | allergic_reaction | infection | burn_or_blister | nodule_or_lump | pigment_change | scarring | bruising_or_swelling | cold_sore_outbreak | other",
            "title": "Event Type",
            "type": "string"
          },
          "follow_up_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Follow Up On"
          },
          "onset_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Onset On"
          },
          "outcome": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "resolved | resolving | not_resolved | resolved_with_sequelae | unknown",
            "title": "Outcome"
          },
          "severity": {
            "description": "mild | moderate | severe",
            "title": "Severity",
            "type": "string"
          },
          "treatment_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Treatment Ref"
          }
        },
        "required": [
          "event_type",
          "severity"
        ],
        "title": "AdverseEventIn",
        "type": "object"
      },
      "AnnualReviewResponse": {
        "properties": {
          "engine": {
            "examples": [
              "member_review_v1"
            ],
            "title": "Engine",
            "type": "string"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "lang": {
            "examples": [
              "en"
            ],
            "title": "Lang",
            "type": "string"
          },
          "member_ref": {
            "examples": [
              "mr_3f9c1a0b7d2e4c6a8b1d0e2f"
            ],
            "title": "Member Ref",
            "type": "string"
          },
          "pdf_available": {
            "default": true,
            "description": "The same selection as a PDF: GET /v1/patients/{member_ref}/annual-review/content.",
            "title": "Pdf Available",
            "type": "boolean"
          },
          "review": {
            "additionalProperties": true,
            "description": "The review content for the selection: measures, going_well, focus, screenings, medicines (count only), ageing (only when asked). No patient name, no Norvya id.",
            "title": "Review",
            "type": "object"
          },
          "selectable_findings": {
            "description": "Open worklist findings with the patient-facing sentence each would print; selectable false (urgent, practice_internal, unverified_source) cannot be passed back.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Selectable Findings",
            "type": "array"
          }
        },
        "required": [
          "member_ref",
          "engine",
          "lang",
          "selectable_findings",
          "review"
        ],
        "title": "AnnualReviewResponse",
        "type": "object"
      },
      "AppointmentIn": {
        "properties": {
          "cancellation_reason": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancellation Reason"
          },
          "duration_minutes": {
            "examples": [
              30
            ],
            "maximum": 480.0,
            "minimum": 5.0,
            "title": "Duration Minutes",
            "type": "integer"
          },
          "location": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "Main Street office"
            ],
            "title": "Location"
          },
          "member_ref": {
            "examples": [
              "mr_3f9c1a0b7d2e4c6a8b1d0e2f"
            ],
            "title": "Member Ref",
            "type": "string"
          },
          "provider": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ProviderIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "start": {
            "description": "ISO 8601 with a UTC offset; a time without one is refused (start_timezone_required).",
            "examples": [
              "2026-10-20T09:30:00-04:00"
            ],
            "title": "Start",
            "type": "string"
          },
          "status": {
            "default": "booked",
            "description": "booked | cancelled | completed | no_show",
            "examples": [
              "booked"
            ],
            "title": "Status",
            "type": "string"
          },
          "telehealth": {
            "default": false,
            "title": "Telehealth",
            "type": "boolean"
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "IANA zone the visit is on; default the practice's zone.",
            "examples": [
              "America/New_York"
            ],
            "title": "Timezone"
          },
          "visit_type": {
            "anyOf": [
              {
                "maxLength": 60,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "follow_up"
            ],
            "title": "Visit Type"
          }
        },
        "required": [
          "member_ref",
          "start",
          "duration_minutes"
        ],
        "title": "AppointmentIn",
        "type": "object"
      },
      "AppointmentList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/AppointmentOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Pass as ?cursor= for the next page; null at the end.",
            "title": "Next Cursor"
          },
          "practice_zone": {
            "title": "Practice Zone",
            "type": "string"
          },
          "window": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Window",
            "type": "object"
          },
          "zone_basis": {
            "description": "clinic_schedule (your Norvya hours) | default_utc",
            "examples": [
              "clinic_schedule"
            ],
            "title": "Zone Basis",
            "type": "string"
          }
        },
        "required": [
          "items",
          "practice_zone",
          "zone_basis",
          "window"
        ],
        "title": "AppointmentList",
        "type": "object"
      },
      "AppointmentOut": {
        "properties": {
          "appointment_ref": {
            "examples": [
              "apt_5e7a9c1b3d5f7a9c1e3a5b7d"
            ],
            "title": "Appointment Ref",
            "type": "string"
          },
          "cancelled_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancelled At"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "duration_minutes": {
            "title": "Duration Minutes",
            "type": "integer"
          },
          "end_utc": {
            "title": "End Utc",
            "type": "string"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your own id, only on appointments YOUR client sent.",
            "examples": [
              "PM-000123"
            ],
            "title": "External Id"
          },
          "location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "norvya_reminders": {
            "description": "Whether Norvya will send its own reminders for it.",
            "title": "Norvya Reminders",
            "type": "boolean"
          },
          "practice_zone": {
            "title": "Practice Zone",
            "type": "string"
          },
          "provider": {
            "$ref": "#/components/schemas/AppointmentProvider"
          },
          "source": {
            "description": "norvya (booked in Norvya) | partner (sent by a practice system)",
            "examples": [
              "partner"
            ],
            "title": "Source",
            "type": "string"
          },
          "start_local": {
            "description": "The start on the practice's clock (practice_zone).",
            "examples": [
              "2026-10-20T09:30:00-04:00"
            ],
            "title": "Start Local",
            "type": "string"
          },
          "start_utc": {
            "examples": [
              "2026-10-20T13:30:00Z"
            ],
            "title": "Start Utc",
            "type": "string"
          },
          "status": {
            "description": "booked | checked_in | completed | cancelled | no_show",
            "examples": [
              "booked"
            ],
            "title": "Status",
            "type": "string"
          },
          "telehealth": {
            "title": "Telehealth",
            "type": "boolean"
          },
          "timezone": {
            "description": "The zone the appointment itself is on.",
            "examples": [
              "America/New_York"
            ],
            "title": "Timezone",
            "type": "string"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          },
          "visit_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Visit Type"
          }
        },
        "required": [
          "appointment_ref",
          "source",
          "member_ref",
          "status",
          "start_utc",
          "end_utc",
          "start_local",
          "duration_minutes",
          "timezone",
          "practice_zone",
          "provider",
          "telehealth",
          "norvya_reminders"
        ],
        "title": "AppointmentOut",
        "type": "object"
      },
      "AppointmentProvider": {
        "properties": {
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "staff_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Staff Ref"
          }
        },
        "title": "AppointmentProvider",
        "type": "object"
      },
      "AssessmentOut": {
        "properties": {
          "assessment": {
            "additionalProperties": true,
            "title": "Assessment",
            "type": "object"
          },
          "assessment_ref": {
            "title": "Assessment Ref",
            "type": "string"
          },
          "clinician": {
            "title": "Clinician",
            "type": "string"
          },
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "assessment_ref",
          "kind",
          "assessment",
          "clinician",
          "disclaimer"
        ],
        "title": "AssessmentOut",
        "type": "object"
      },
      "Authorization": {
        "properties": {
          "administrator": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrator"
          },
          "agency": {
            "examples": [
              "va"
            ],
            "title": "Agency",
            "type": "string"
          },
          "authorization_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authorization Number"
          },
          "authorization_ref": {
            "examples": [
              "cca_1a2b3c4d5e6f7a8b9c0d1e2f"
            ],
            "title": "Authorization Ref",
            "type": "string"
          },
          "authorized_from": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authorized From"
          },
          "authorized_services": {
            "items": {
              "type": "string"
            },
            "title": "Authorized Services",
            "type": "array"
          },
          "authorized_to": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authorized To"
          },
          "authorized_visits": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authorized Visits"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "documentation_due_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentation Due On"
          },
          "documents": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documents"
          },
          "episode_of_care": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Episode Of Care"
          },
          "flags": {
            "additionalProperties": true,
            "title": "Flags",
            "type": "object"
          },
          "member_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Null while the referral is not matched to a patient, or the patient is no longer linked to your practice.",
            "title": "Member Ref"
          },
          "referral_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Referral Number"
          },
          "referring_facility": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Referring Facility"
          },
          "status": {
            "description": "pending | authorized | in_progress | documentation_due | closed | cancelled",
            "examples": [
              "authorized"
            ],
            "title": "Status",
            "type": "string"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          },
          "visits": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Visits"
          }
        },
        "required": [
          "authorization_ref",
          "agency",
          "authorized_services",
          "status",
          "flags",
          "disclaimer"
        ],
        "title": "Authorization",
        "type": "object"
      },
      "AuthorizationList": {
        "properties": {
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Authorization"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items",
          "disclaimer"
        ],
        "title": "AuthorizationList",
        "type": "object"
      },
      "BatchAggregate": {
        "properties": {
          "completed": {
            "$ref": "#/components/schemas/routers__partner_api_records__Cell"
          },
          "crisis_flagged": {
            "$ref": "#/components/schemas/routers__partner_api_records__Cell"
          },
          "min_cell": {
            "title": "Min Cell",
            "type": "integer"
          },
          "positive_screens": {
            "$ref": "#/components/schemas/routers__partner_api_records__Cell"
          }
        },
        "required": [
          "min_cell",
          "completed",
          "positive_screens",
          "crisis_flagged"
        ],
        "title": "BatchAggregate",
        "type": "object"
      },
      "BatchIn": {
        "properties": {
          "cohort": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CohortIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "external_id": {
            "anyOf": [
              {
                "maxLength": 128,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your id: a retry returns the same batch.",
            "title": "External Id"
          },
          "instrument_id": {
            "examples": [
              "phq9"
            ],
            "title": "Instrument Id",
            "type": "string"
          },
          "member_refs": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 500,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Up to 500 of your members.",
            "title": "Member Refs"
          }
        },
        "required": [
          "instrument_id"
        ],
        "title": "BatchIn",
        "type": "object"
      },
      "BatchList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/BatchListItem"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "BatchList",
        "type": "object"
      },
      "BatchListItem": {
        "properties": {
          "batch_ref": {
            "title": "Batch Ref",
            "type": "string"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "finished_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "instrument_id": {
            "title": "Instrument Id",
            "type": "string"
          },
          "members": {
            "title": "Members",
            "type": "integer"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "batch_ref",
          "status",
          "instrument_id",
          "members"
        ],
        "title": "BatchListItem",
        "type": "object"
      },
      "BatchMember": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "crisis_flag": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Crisis Flag"
          },
          "crisis_guidance": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Crisis Guidance"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "outcome": {
            "description": "queued | requested | already_pending | refused",
            "title": "Outcome",
            "type": "string"
          },
          "positive_screen": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Positive Screen"
          },
          "response_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Ref"
          },
          "results_visible": {
            "title": "Results Visible",
            "type": "boolean"
          },
          "score_band": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Band"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "requested | submitted",
            "title": "Status"
          }
        },
        "required": [
          "member_ref",
          "outcome",
          "results_visible"
        ],
        "title": "BatchMember",
        "type": "object"
      },
      "BatchOut": {
        "properties": {
          "aggregate": {
            "$ref": "#/components/schemas/BatchAggregate"
          },
          "batch_ref": {
            "title": "Batch Ref",
            "type": "string"
          },
          "cohort": {
            "additionalProperties": true,
            "title": "Cohort",
            "type": "object"
          },
          "created": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "finished_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "instrument": {
            "additionalProperties": true,
            "title": "Instrument",
            "type": "object"
          },
          "members": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/BatchMember"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Members"
          },
          "members_included": {
            "title": "Members Included",
            "type": "boolean"
          },
          "progress": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Progress",
            "type": "object"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "description": "queued | running | completed | failed",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "batch_ref",
          "status",
          "instrument",
          "cohort",
          "progress",
          "aggregate",
          "members_included"
        ],
        "title": "BatchOut",
        "type": "object"
      },
      "BetweenVisitResponse": {
        "properties": {
          "as_of": {
            "title": "As Of",
            "type": "string"
          },
          "consent": {
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "The member's per-type sharing switches for your practice (default off).",
            "title": "Consent",
            "type": "object"
          },
          "consent_version": {
            "title": "Consent Version",
            "type": "string"
          },
          "engine": {
            "title": "Engine",
            "type": "string"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "label": {
            "default": "member_reported",
            "description": "Every signal is the member's own home data: member reported, never practice-confirmed, never a clinic contact.",
            "title": "Label",
            "type": "string"
          },
          "last_reading": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": "Last Reading",
            "type": "object"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "title": "Limitations",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "sharing": {
            "items": {
              "type": "string"
            },
            "title": "Sharing",
            "type": "array"
          },
          "signals": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Signals",
            "type": "array"
          },
          "top_priority": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Top Priority"
          }
        },
        "required": [
          "member_ref",
          "engine",
          "as_of",
          "consent_version"
        ],
        "title": "BetweenVisitResponse",
        "type": "object"
      },
      "Body_oauth_token_v1_oauth_token_post": {
        "properties": {
          "client_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Client Id"
          },
          "client_secret": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Client Secret"
          },
          "grant_type": {
            "description": "Must be client_credentials.",
            "title": "Grant Type",
            "type": "string"
          },
          "practice": {
            "anyOf": [
              {
                "maxLength": 64,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "EMR vendors only: the practice_ref of a practice that approved you (GET /v1/practices). Omit for a vendor-level token (scope vendor.practices.read).",
            "title": "Practice"
          },
          "scope": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional space-separated subset of the client's scopes.",
            "title": "Scope"
          }
        },
        "required": [
          "grant_type"
        ],
        "title": "Body_oauth_token_v1_oauth_token_post",
        "type": "object"
      },
      "Body_panel_import_upload_v1_panel_imports_post": {
        "properties": {
          "files": {
            "description": "A FHIR Bulk Data export (one or more .ndjson files, or a .zip of them), a FHIR Bundle (.json), or a spreadsheet (.xlsx / .csv) your practice has a saved mapping profile for.",
            "items": {
              "format": "binary",
              "type": "string"
            },
            "title": "Files",
            "type": "array"
          },
          "identifier_system": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "FHIR: the Patient identifier system that holds your MRN (default: the identifier typed MR).",
            "title": "Identifier System"
          }
        },
        "required": [
          "files"
        ],
        "title": "Body_panel_import_upload_v1_panel_imports_post",
        "type": "object"
      },
      "Body_skin_classification_v1_patients__member_ref__skin_classifications_post": {
        "properties": {
          "file": {
            "anyOf": [
              {
                "format": "binary",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "File"
          }
        },
        "title": "Body_skin_classification_v1_patients__member_ref__skin_classifications_post",
        "type": "object"
      },
      "Body_travel_nursing_log_v1_travel_journeys__journey_ref__nursing_logs_post": {
        "properties": {
          "approved_hours": {
            "description": "Hours, e.g. 12 or 7.5.",
            "title": "Approved Hours",
            "type": "string"
          },
          "document": {
            "description": "The letter: PDF, PNG or JPEG, at most 10 MB.",
            "format": "binary",
            "title": "Document",
            "type": "string"
          },
          "end_date": {
            "title": "End Date",
            "type": "string"
          },
          "hours_unit": {
            "description": "per_day | per_week | total",
            "title": "Hours Unit",
            "type": "string"
          },
          "issued_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issued On"
          },
          "sponsor_reference": {
            "description": "Must be the case's PRN.",
            "title": "Sponsor Reference",
            "type": "string"
          },
          "start_date": {
            "title": "Start Date",
            "type": "string"
          }
        },
        "required": [
          "sponsor_reference",
          "start_date",
          "end_date",
          "approved_hours",
          "hours_unit",
          "document"
        ],
        "title": "Body_travel_nursing_log_v1_travel_journeys__journey_ref__nursing_logs_post",
        "type": "object"
      },
      "BriefResponse": {
        "properties": {
          "available": {
            "title": "Available",
            "type": "boolean"
          },
          "consent_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Note"
          },
          "disclaimer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disclaimer"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "sections": {
            "additionalProperties": true,
            "title": "Sections",
            "type": "object"
          },
          "withheld_by_consent": {
            "items": {
              "type": "string"
            },
            "title": "Withheld By Consent",
            "type": "array"
          }
        },
        "required": [
          "member_ref",
          "available"
        ],
        "title": "BriefResponse",
        "type": "object"
      },
      "CancelIn": {
        "additionalProperties": false,
        "properties": {
          "reason": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          }
        },
        "title": "CancelIn",
        "type": "object"
      },
      "CandidateCriterion": {
        "properties": {
          "code": {
            "examples": [
              "chronic_condition"
            ],
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "additionalProperties": true,
            "description": "What matched and the record it came from.",
            "title": "Detail",
            "type": "object"
          }
        },
        "required": [
          "code",
          "detail"
        ],
        "title": "CandidateCriterion",
        "type": "object"
      },
      "CandidateItem": {
        "properties": {
          "coverage": {
            "additionalProperties": true,
            "title": "Coverage",
            "type": "object"
          },
          "criteria_met": {
            "items": {
              "$ref": "#/components/schemas/CandidateCriterion"
            },
            "title": "Criteria Met",
            "type": "array"
          },
          "label": {
            "examples": [
              "candidate_for_review"
            ],
            "title": "Label",
            "type": "string"
          },
          "level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "APCM only: level_1 | level_2 | level_3 | level_2_or_3 | unknown.",
            "title": "Level"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "open_enrollments": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Open Enrollments",
            "type": "array"
          },
          "previously_declined_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previously Declined On"
          },
          "program": {
            "examples": [
              "ccm"
            ],
            "title": "Program",
            "type": "string"
          },
          "staff_must_confirm": {
            "title": "Staff Must Confirm",
            "type": "boolean"
          },
          "unknowns": {
            "items": {
              "type": "string"
            },
            "title": "Unknowns",
            "type": "array"
          }
        },
        "required": [
          "member_ref",
          "program",
          "label",
          "criteria_met",
          "unknowns",
          "coverage",
          "open_enrollments",
          "staff_must_confirm"
        ],
        "title": "CandidateItem",
        "type": "object"
      },
      "CandidateList": {
        "properties": {
          "as_of": {
            "title": "As Of",
            "type": "string"
          },
          "care_management_enabled": {
            "title": "Care Management Enabled",
            "type": "boolean"
          },
          "counts": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Counts",
            "type": "object"
          },
          "criteria": {
            "additionalProperties": true,
            "title": "Criteria",
            "type": "object"
          },
          "engine": {
            "title": "Engine",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/CandidateItem"
            },
            "title": "Items",
            "type": "array"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "title": "Limitations",
            "type": "array"
          },
          "notice": {
            "title": "Notice",
            "type": "string"
          },
          "staff_must_confirm": {
            "title": "Staff Must Confirm",
            "type": "boolean"
          }
        },
        "required": [
          "as_of",
          "engine",
          "care_management_enabled",
          "counts",
          "items",
          "criteria",
          "limitations",
          "staff_must_confirm",
          "notice"
        ],
        "title": "CandidateList",
        "type": "object"
      },
      "CardLink": {
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "type": {
            "examples": [
              "smart"
            ],
            "title": "Type",
            "type": "string"
          },
          "url": {
            "description": "SMART launch URL of the practice's Norvya registration.",
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "label",
          "url",
          "type"
        ],
        "title": "CardLink",
        "type": "object"
      },
      "CardSource": {
        "properties": {
          "label": {
            "examples": [
              "Norvya"
            ],
            "title": "Label",
            "type": "string"
          },
          "topic": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CardSourceTopic"
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "required": [
          "label"
        ],
        "title": "CardSource",
        "type": "object"
      },
      "CardSourceTopic": {
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "display": {
            "title": "Display",
            "type": "string"
          },
          "system": {
            "title": "System",
            "type": "string"
          }
        },
        "required": [
          "system",
          "code",
          "display"
        ],
        "title": "CardSourceTopic",
        "type": "object"
      },
      "CardsResponse": {
        "properties": {
          "cards": {
            "description": "CDS Hooks 2.0 card objects, ready to render natively.",
            "items": {
              "$ref": "#/components/schemas/CdsCard"
            },
            "title": "Cards",
            "type": "array"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "cards"
        ],
        "title": "CardsResponse",
        "type": "object"
      },
      "CareGapsResponse": {
        "properties": {
          "as_of": {
            "title": "As Of",
            "type": "string"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "gaps": {
            "description": "One per rule: key, status (met | due | overdue | excluded | not_applicable | insufficient_data), last_date, due_date, reason_key + params, evidence, guideline, limitations.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Gaps",
            "type": "array"
          },
          "known_as_of": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Known As Of"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "as_of"
        ],
        "title": "CareGapsResponse",
        "type": "object"
      },
      "CdsCard": {
        "properties": {
          "detail": {
            "description": "Markdown: which record areas the patient shares with your practice (names only, never values), the decision-support notice and disclaimer.",
            "title": "Detail",
            "type": "string"
          },
          "indicator": {
            "examples": [
              "info"
            ],
            "title": "Indicator",
            "type": "string"
          },
          "links": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/CardLink"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Only when your practice has an enabled SMART registration (EhrConnection); omitted otherwise.",
            "title": "Links"
          },
          "source": {
            "$ref": "#/components/schemas/CardSource"
          },
          "summary": {
            "examples": [
              "Norvya Pre-Visit Brief available"
            ],
            "maxLength": 140,
            "title": "Summary",
            "type": "string"
          },
          "uuid": {
            "title": "Uuid",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "summary",
          "detail",
          "indicator",
          "source"
        ],
        "title": "CdsCard",
        "type": "object"
      },
      "ChallengeIn": {
        "properties": {
          "catalog_key": {
            "description": "One of GET /v1/employer/challenges catalog[].catalog_key.",
            "title": "Catalog Key",
            "type": "string"
          },
          "end_on": {
            "description": "YYYY-MM-DD; the window is 7 to 92 days.",
            "title": "End On",
            "type": "string"
          },
          "recognition": {
            "default": "badge",
            "description": "badge (the only recognition: never cash or prizes)",
            "title": "Recognition",
            "type": "string"
          },
          "start_on": {
            "description": "YYYY-MM-DD",
            "title": "Start On",
            "type": "string"
          }
        },
        "required": [
          "catalog_key",
          "start_on",
          "end_on"
        ],
        "title": "ChallengeIn",
        "type": "object"
      },
      "ChallengePatch": {
        "properties": {
          "end_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End On"
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active"
          },
          "start_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start On"
          }
        },
        "title": "ChallengePatch",
        "type": "object"
      },
      "ClaimInviteBody": {
        "properties": {
          "channel": {
            "default": "email",
            "description": "email | sms (sms only where Norvya's text sender is configured).",
            "examples": [
              "email"
            ],
            "title": "Channel",
            "type": "string"
          },
          "email": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Held sealed for the invitation only; never put on the account, never returned.",
            "title": "Email"
          },
          "language": {
            "anyOf": [
              {
                "maxLength": 10,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The patient's language (17 supported); the invitation email is written in it.",
            "examples": [
              "es"
            ],
            "title": "Language"
          },
          "phone": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          }
        },
        "title": "ClaimInviteBody",
        "type": "object"
      },
      "ClaimInviteOut": {
        "properties": {
          "channel": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Channel"
          },
          "claimed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Claimed At"
          },
          "code_returned": {
            "default": false,
            "description": "Always false: the one-time code goes to the patient only.",
            "title": "Code Returned",
            "type": "boolean"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "has_email": {
            "default": false,
            "title": "Has Email",
            "type": "boolean"
          },
          "has_phone": {
            "default": false,
            "title": "Has Phone",
            "type": "boolean"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "outcome": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "sent | delivery_failed | simulated | not_a_patient | already_claimed | already_has_login | no_date_of_birth | no_email | no_phone | sms_not_available",
            "title": "Outcome"
          },
          "sent_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sent At"
          },
          "simulated": {
            "default": false,
            "title": "Simulated",
            "type": "boolean"
          },
          "status": {
            "description": "no_contact | not_sent | sent | expired | claimed | revoked | has_login",
            "examples": [
              "sent"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "status"
        ],
        "title": "ClaimInviteOut",
        "type": "object"
      },
      "ClaimsDryRun": {
        "properties": {
          "blocking": {
            "examples": [
              [
                "claims_import_nothing_to_commit"
              ]
            ],
            "items": {
              "type": "string"
            },
            "title": "Blocking",
            "type": "array"
          },
          "by_part": {
            "additionalProperties": {
              "type": "integer"
            },
            "examples": [
              {
                "A": 12,
                "B": 98,
                "D": 10
              }
            ],
            "title": "By Part",
            "type": "object"
          },
          "by_setting": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "By Setting",
            "type": "object"
          },
          "can_commit": {
            "default": false,
            "title": "Can Commit",
            "type": "boolean"
          },
          "claims_ambiguous": {
            "default": 0,
            "title": "Claims Ambiguous",
            "type": "integer"
          },
          "claims_matched": {
            "default": 0,
            "description": "Claims that matched exactly one of your active members; only these are staged.",
            "title": "Claims Matched",
            "type": "integer"
          },
          "claims_parsed": {
            "default": 0,
            "title": "Claims Parsed",
            "type": "integer"
          },
          "claims_unmatched": {
            "default": 0,
            "description": "Counted and dropped: no member of yours holds that identifier.",
            "title": "Claims Unmatched",
            "type": "integer"
          },
          "diagnosis_rows_attached": {
            "default": 0,
            "description": "CCLF4 diagnosis rows attached to a Part A header.",
            "title": "Diagnosis Rows Attached",
            "type": "integer"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/ClaimsFileKind"
            },
            "title": "Files",
            "type": "array"
          },
          "match_basis": {
            "additionalProperties": {
              "type": "integer"
            },
            "description": "mbi | plan_member_id | member_ref",
            "examples": [
              {
                "mbi": 120
              }
            ],
            "title": "Match Basis",
            "type": "object"
          },
          "match_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              0.92
            ],
            "title": "Match Rate"
          },
          "members_matched": {
            "default": 0,
            "title": "Members Matched",
            "type": "integer"
          },
          "raw_identifiers_stored": {
            "default": false,
            "description": "Always false: MBIs, plan member ids and claim numbers are fingerprinted / hashed, never stored.",
            "title": "Raw Identifiers Stored",
            "type": "boolean"
          },
          "rejected": {
            "default": 0,
            "title": "Rejected",
            "type": "integer"
          },
          "rejections": {
            "description": "The first 200; all are counted.",
            "items": {
              "$ref": "#/components/schemas/ClaimsRejection"
            },
            "title": "Rejections",
            "type": "array"
          },
          "rejections_by_code": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Rejections By Code",
            "type": "object"
          },
          "rows_read": {
            "default": 0,
            "title": "Rows Read",
            "type": "integer"
          },
          "service_from_min": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Service From Min"
          },
          "service_thru_max": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Service Thru Max"
          },
          "unmatched_rows": {
            "description": "The first 200.",
            "items": {
              "$ref": "#/components/schemas/ClaimsRow"
            },
            "title": "Unmatched Rows",
            "type": "array"
          }
        },
        "title": "ClaimsDryRun",
        "type": "object"
      },
      "ClaimsFileKind": {
        "properties": {
          "filename": {
            "examples": [
              "CCLF1.psv"
            ],
            "title": "Filename",
            "type": "string"
          },
          "kind": {
            "description": "cclf1 | cclf4 | cclf5 (CCLF5 or CCLF6) | cclf7 | plan",
            "examples": [
              "cclf1"
            ],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": [
          "filename",
          "kind"
        ],
        "title": "ClaimsFileKind",
        "type": "object"
      },
      "ClaimsImportOut": {
        "properties": {
          "claims_import_ref": {
            "examples": [
              "cli_8a1f0c3e5b7d9a2c4e6f8b0d"
            ],
            "title": "Claims Import Ref",
            "type": "string"
          },
          "commit_started_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Commit Started At"
          },
          "committed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Committed At"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "discarded_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discarded At"
          },
          "dry_run": {
            "$ref": "#/components/schemas/ClaimsDryRun"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "file_bytes": {
            "default": 0,
            "title": "File Bytes",
            "type": "integer"
          },
          "file_kinds": {
            "examples": [
              [
                "cclf1",
                "cclf4"
              ]
            ],
            "items": {
              "type": "string"
            },
            "title": "File Kinds",
            "type": "array"
          },
          "file_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "File Sha256"
          },
          "result": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              {
                "care_events_written": 9,
                "claims_committed": 110,
                "claims_replaced": 0,
                "diagnosis_rows_merged": 12,
                "dropped_link_ended_or_header_missing": 0,
                "members": 41,
                "profile_changed": false
              }
            ],
            "title": "Result"
          },
          "status": {
            "description": "staged | committing | committed | failed | discarded",
            "examples": [
              "staged"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "claims_import_ref",
          "status",
          "dry_run"
        ],
        "title": "ClaimsImportOut",
        "type": "object"
      },
      "ClaimsRejection": {
        "properties": {
          "code": {
            "description": "missing_claim_id | missing_member | malformed_mbi | malformed_member_ref | invalid_service_date | service_date_in_future | service_dates_reversed | invalid_icd10 | invalid_procedure_code | invalid_ndc | ndc_ambiguous_10_digit | invalid_place_of_service | invalid_paid_amount | invalid_part | invalid_setting | invalid_json | claim_member_mismatch | too_many_codes | member_ambiguous | claim_header_not_found",
            "examples": [
              "malformed_mbi"
            ],
            "title": "Code",
            "type": "string"
          },
          "file": {
            "examples": [
              "CCLF5.psv"
            ],
            "title": "File",
            "type": "string"
          },
          "row": {
            "description": "1-based line number in that file (header = 1).",
            "examples": [
              17
            ],
            "title": "Row",
            "type": "integer"
          }
        },
        "required": [
          "file",
          "row",
          "code"
        ],
        "title": "ClaimsRejection",
        "type": "object"
      },
      "ClaimsRow": {
        "properties": {
          "file": {
            "title": "File",
            "type": "string"
          },
          "row": {
            "title": "Row",
            "type": "integer"
          }
        },
        "required": [
          "file",
          "row"
        ],
        "title": "ClaimsRow",
        "type": "object"
      },
      "ClaimsSourceBlock": {
        "properties": {
          "available": {
            "title": "Available",
            "type": "boolean"
          },
          "by_eob_type": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "integer"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "By Eob Type"
          },
          "by_part": {
            "anyOf": [
              {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "By Part"
          },
          "by_setting": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "integer"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "By Setting"
          },
          "claims": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Claims"
          },
          "claims_with_paid_amount": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Claims With Paid Amount"
          },
          "coverage_parts": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Coverage Parts"
          },
          "environment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Environment"
          },
          "first_service_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Service Date"
          },
          "last_service_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Service Date"
          },
          "notes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "paid_amount_reported_cents": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paid Amount Reported Cents"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "claims_baa_required | not_shared | not_connected | not_synced",
            "title": "Reason"
          },
          "synced_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Synced At"
          },
          "synthetic": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Synthetic"
          }
        },
        "required": [
          "available"
        ],
        "title": "ClaimsSourceBlock",
        "type": "object"
      },
      "ClaimsSummary": {
        "properties": {
          "claims_total": {
            "title": "Claims Total",
            "type": "integer"
          },
          "first_service_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Service Date"
          },
          "hcc": {
            "$ref": "#/components/schemas/HccBlock"
          },
          "last_service_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Service Date"
          },
          "member_ref": {
            "examples": [
              "mr_3f9c1a0b7d2e4c6a8b1d0e2f"
            ],
            "title": "Member Ref",
            "type": "string"
          },
          "paid_amount_note": {
            "title": "Paid Amount Note",
            "type": "string"
          },
          "profile_merged": {
            "default": false,
            "description": "Always false: claims never change the member's self-reported conditions or medications.",
            "title": "Profile Merged",
            "type": "boolean"
          },
          "sources": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ClaimsSourceBlock"
            },
            "description": "cclf | plan (your imports) | blue_button (the member's own Medicare connection)",
            "title": "Sources",
            "type": "object"
          },
          "top_diagnosis_categories": {
            "items": {
              "$ref": "#/components/schemas/DxCategory"
            },
            "title": "Top Diagnosis Categories",
            "type": "array"
          }
        },
        "required": [
          "member_ref",
          "claims_total",
          "sources",
          "top_diagnosis_categories",
          "hcc",
          "paid_amount_note"
        ],
        "title": "ClaimsSummary",
        "type": "object"
      },
      "Clinician": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role"
          },
          "staff_ref": {
            "title": "Staff Ref",
            "type": "string"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "required": [
          "staff_ref",
          "name"
        ],
        "title": "Clinician",
        "type": "object"
      },
      "ClinicianItem": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "max": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max"
          },
          "min": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Min"
          },
          "text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text"
          },
          "unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          }
        },
        "required": [
          "id"
        ],
        "title": "ClinicianItem",
        "type": "object"
      },
      "ClinicianList": {
        "properties": {
          "clinicians": {
            "items": {
              "$ref": "#/components/schemas/Clinician"
            },
            "title": "Clinicians",
            "type": "array"
          }
        },
        "required": [
          "clinicians"
        ],
        "title": "ClinicianList",
        "type": "object"
      },
      "ClinicianRatedOut": {
        "properties": {
          "accepts_decimal": {
            "title": "Accepts Decimal",
            "type": "boolean"
          },
          "id": {
            "examples": [
              "fois"
            ],
            "title": "Id",
            "type": "string"
          },
          "item_count": {
            "title": "Item Count",
            "type": "integer"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/ClinicianItem"
            },
            "title": "Items",
            "type": "array"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "reason_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason Code"
          },
          "recordable": {
            "description": "POST /v1/patients/{member_ref}/clinician-ratings accepts it.",
            "title": "Recordable",
            "type": "boolean"
          },
          "version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version"
          }
        },
        "required": [
          "id",
          "item_count",
          "items",
          "accepts_decimal",
          "recordable"
        ],
        "title": "ClinicianRatedOut",
        "type": "object"
      },
      "CloseIn": {
        "properties": {
          "clinician": {
            "title": "Clinician",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          }
        },
        "required": [
          "clinician"
        ],
        "title": "CloseIn",
        "type": "object"
      },
      "CmMonth": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/CmProgramRow"
            },
            "title": "Items",
            "type": "array"
          },
          "notice": {
            "title": "Notice",
            "type": "string"
          },
          "practice_zone": {
            "title": "Practice Zone",
            "type": "string"
          },
          "reference_as_of": {
            "title": "Reference As Of",
            "type": "string"
          },
          "service_month": {
            "title": "Service Month",
            "type": "string"
          },
          "zone_basis": {
            "title": "Zone Basis",
            "type": "string"
          }
        },
        "required": [
          "service_month",
          "practice_zone",
          "zone_basis",
          "items",
          "reference_as_of",
          "notice"
        ],
        "title": "CmMonth",
        "type": "object"
      },
      "CmPatient": {
        "properties": {
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "notice": {
            "title": "Notice",
            "type": "string"
          },
          "practice_zone": {
            "title": "Practice Zone",
            "type": "string"
          },
          "programs": {
            "items": {
              "$ref": "#/components/schemas/CmProgramRow"
            },
            "title": "Programs",
            "type": "array"
          },
          "service_month": {
            "title": "Service Month",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "service_month",
          "practice_zone",
          "programs",
          "notice"
        ],
        "title": "CmPatient",
        "type": "object"
      },
      "CmProgramRow": {
        "properties": {
          "concurrency": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Concurrency",
            "type": "array"
          },
          "enrolment": {
            "additionalProperties": true,
            "title": "Enrolment",
            "type": "object"
          },
          "family": {
            "examples": [
              "time_based"
            ],
            "title": "Family",
            "type": "string"
          },
          "gaps": {
            "description": "What is missing, as machine codes with parameters.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Gaps",
            "type": "array"
          },
          "interactive_call_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interactive Call Minutes"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "minutes": {
            "title": "Minutes",
            "type": "integer"
          },
          "minutes_by_activity": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Minutes By Activity",
            "type": "object"
          },
          "program": {
            "examples": [
              "ccm"
            ],
            "title": "Program",
            "type": "string"
          },
          "reference": {
            "$ref": "#/components/schemas/CmReference"
          },
          "remote_periods": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Remote monitoring: 30-day periods overlapping the month, device days vs the references.",
            "title": "Remote Periods"
          },
          "service_month": {
            "examples": [
              "2026-10"
            ],
            "title": "Service Month",
            "type": "string"
          },
          "status": {
            "examples": [
              "candidate_for_biller_review"
            ],
            "title": "Status",
            "type": "string"
          },
          "tcm_periods": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tcm Periods"
          },
          "threshold": {
            "$ref": "#/components/schemas/CmThreshold"
          },
          "time_entries": {
            "title": "Time Entries",
            "type": "integer"
          }
        },
        "required": [
          "member_ref",
          "program",
          "family",
          "service_month",
          "status",
          "enrolment",
          "minutes",
          "time_entries",
          "minutes_by_activity",
          "threshold",
          "reference",
          "gaps",
          "concurrency"
        ],
        "title": "CmProgramRow",
        "type": "object"
      },
      "CmReference": {
        "properties": {
          "add_on_codes": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Add On Codes",
            "type": "array"
          },
          "add_on_marks": {
            "description": "Reference marks that are add-on increments.",
            "items": {
              "type": "string"
            },
            "title": "Add On Marks",
            "type": "array"
          },
          "attached_to_member": {
            "default": false,
            "description": "Always false: no code is selected for a patient.",
            "title": "Attached To Member",
            "type": "boolean"
          },
          "codes": {
            "description": "The codes CMS lists for this PROGRAM (reference data).",
            "examples": [
              [
                "99490",
                "99439",
                "99491",
                "99437",
                "99487",
                "99489"
              ]
            ],
            "items": {
              "type": "string"
            },
            "title": "Codes",
            "type": "array"
          },
          "codes_verified": {
            "title": "Codes Verified",
            "type": "boolean"
          },
          "mark_minutes": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Mark Minutes",
            "type": "object"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          }
        },
        "required": [
          "codes",
          "add_on_marks",
          "codes_verified"
        ],
        "title": "CmReference",
        "type": "object"
      },
      "CmThreshold": {
        "properties": {
          "basis": {
            "examples": [
              "minutes"
            ],
            "title": "Basis",
            "type": "string"
          },
          "marks_reached": {
            "examples": [
              [
                "clinical_staff_first"
              ]
            ],
            "items": {
              "type": "string"
            },
            "title": "Marks Reached",
            "type": "array"
          },
          "met": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "The first published reference mark was reached this month; null where the program has no monthly threshold (APCM, TCM).",
            "title": "Met"
          },
          "next_mark": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Mark"
          }
        },
        "required": [
          "met",
          "basis",
          "marks_reached"
        ],
        "title": "CmThreshold",
        "type": "object"
      },
      "CocmEnrollIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician enrolling the patient.",
            "title": "Clinician",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "model": {
            "description": "cocm | general_bhi",
            "examples": [
              "cocm"
            ],
            "title": "Model",
            "type": "string"
          },
          "scale_interval_days": {
            "anyOf": [
              {
                "maximum": 180.0,
                "minimum": 7.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scale Interval Days"
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date"
          },
          "target_conditions": {
            "description": "depression | anxiety | ptsd | other (substance_use is not set through the API).",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Target Conditions",
            "type": "array"
          },
          "target_note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Note"
          },
          "team": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TeamIn"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "member_ref",
          "clinician",
          "model",
          "target_conditions"
        ],
        "title": "CocmEnrollIn",
        "type": "object"
      },
      "CocmMonth": {
        "properties": {
          "care_manager_assigned": {
            "title": "Care Manager Assigned",
            "type": "boolean"
          },
          "consent_recorded": {
            "title": "Consent Recorded",
            "type": "boolean"
          },
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "enrolled": {
            "title": "Enrolled",
            "type": "boolean"
          },
          "episode_ref": {
            "title": "Episode Ref",
            "type": "string"
          },
          "initial_month": {
            "title": "Initial Month",
            "type": "boolean"
          },
          "initiating_visit_recorded": {
            "title": "Initiating Visit Recorded",
            "type": "boolean"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "minutes": {
            "title": "Minutes",
            "type": "integer"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          },
          "notes": {
            "items": {
              "type": "string"
            },
            "title": "Notes",
            "type": "array"
          },
          "notice": {
            "title": "Notice",
            "type": "string"
          },
          "other_staff_minutes": {
            "title": "Other Staff Minutes",
            "type": "integer"
          },
          "program": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Program"
          },
          "psychiatric_review_in_month": {
            "title": "Psychiatric Review In Month",
            "type": "boolean"
          },
          "rating_scale_in_month": {
            "title": "Rating Scale In Month",
            "type": "boolean"
          },
          "reference_minutes": {
            "additionalProperties": true,
            "title": "Reference Minutes",
            "type": "object"
          },
          "see_also": {
            "title": "See Also",
            "type": "string"
          },
          "service_month": {
            "title": "Service Month",
            "type": "string"
          },
          "sources": {
            "items": {
              "type": "string"
            },
            "title": "Sources",
            "type": "array"
          },
          "status": {
            "examples": [
              "candidate_for_biller_review"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "episode_ref",
          "member_ref",
          "status",
          "notice",
          "service_month",
          "enrolled",
          "consent_recorded",
          "initial_month",
          "minutes",
          "other_staff_minutes",
          "psychiatric_review_in_month",
          "rating_scale_in_month",
          "care_manager_assigned",
          "initiating_visit_recorded",
          "reference_minutes",
          "notes",
          "disclaimer",
          "sources",
          "see_also"
        ],
        "title": "CocmMonth",
        "type": "object"
      },
      "CocmOut": {
        "properties": {
          "consent": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "recorded | missing | renewal_needed | withdrawn",
            "title": "Consent"
          },
          "consent_detail": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Detail"
          },
          "crisis_guidance": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Crisis Guidance"
          },
          "discharge": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharge"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date"
          },
          "episode_ref": {
            "examples": [
              "bhc_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Episode Ref",
            "type": "string"
          },
          "flags": {
            "items": {
              "type": "string"
            },
            "title": "Flags",
            "type": "array"
          },
          "gad7": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Scale"
              },
              {
                "type": "null"
              }
            ]
          },
          "initiating_visit": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Initiating Visit"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          },
          "next_scale_due": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Scale Due"
          },
          "phq9": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Scale"
              },
              {
                "type": "null"
              }
            ]
          },
          "reviews": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviews"
          },
          "scale_interval_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scale Interval Days"
          },
          "see_also": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "See Also"
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "target_conditions": {
            "items": {
              "type": "string"
            },
            "title": "Target Conditions",
            "type": "array"
          },
          "team": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": "Team",
            "type": "object"
          },
          "weeks_in_treatment": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Weeks In Treatment"
          }
        },
        "required": [
          "episode_ref",
          "member_ref",
          "target_conditions",
          "team",
          "flags"
        ],
        "title": "CocmOut",
        "type": "object"
      },
      "CocmRegistry": {
        "properties": {
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/CocmOut"
            },
            "title": "Items",
            "type": "array"
          },
          "reference_minutes": {
            "additionalProperties": true,
            "title": "Reference Minutes",
            "type": "object"
          },
          "sources": {
            "additionalProperties": true,
            "title": "Sources",
            "type": "object"
          },
          "withheld_not_sharing": {
            "title": "Withheld Not Sharing",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "withheld_not_sharing",
          "reference_minutes",
          "sources",
          "disclaimer"
        ],
        "title": "CocmRegistry",
        "type": "object"
      },
      "CodeableConcept": {
        "properties": {
          "coding": {
            "items": {
              "$ref": "#/components/schemas/Coding"
            },
            "title": "Coding",
            "type": "array"
          },
          "text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text"
          }
        },
        "required": [
          "coding"
        ],
        "title": "CodeableConcept",
        "type": "object"
      },
      "Coding": {
        "properties": {
          "code": {
            "examples": [
              "Z59.41"
            ],
            "title": "Code",
            "type": "string"
          },
          "display": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display"
          },
          "system": {
            "examples": [
              "http://hl7.org/fhir/sid/icd-10-cm"
            ],
            "title": "System",
            "type": "string"
          }
        },
        "required": [
          "system",
          "code"
        ],
        "title": "Coding",
        "type": "object"
      },
      "CohortCounts": {
        "properties": {
          "cohort": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cohort"
          },
          "counts": {
            "additionalProperties": {
              "$ref": "#/components/schemas/routers__partner_api_roster__Cell"
            },
            "description": "queued | sent | not_sent | send_failed | opened | joined | expired | revoked | declined | already_member | opted_out | not_invitable",
            "title": "Counts",
            "type": "object"
          },
          "total": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total"
          },
          "total_suppressed": {
            "title": "Total Suppressed",
            "type": "boolean"
          }
        },
        "required": [
          "counts",
          "total_suppressed"
        ],
        "title": "CohortCounts",
        "type": "object"
      },
      "CohortIn": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "maxLength": 80,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "worklist_finding: the finding code from GET /v1/panel/worklist, latest completed run.",
            "title": "Code"
          },
          "kind": {
            "description": "all_active | care_program | worklist_finding",
            "examples": [
              "all_active"
            ],
            "title": "Kind",
            "type": "string"
          },
          "program": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "care_program: the programme key (e.g. ccm, rpm).",
            "title": "Program"
          }
        },
        "required": [
          "kind"
        ],
        "title": "CohortIn",
        "type": "object"
      },
      "CommitBody": {
        "properties": {
          "create_possible_duplicates": {
            "default": false,
            "description": "Create a SEPARATE account for a new MRN whose name + DOB match an existing patient (never merged). Default: held.",
            "title": "Create Possible Duplicates",
            "type": "boolean"
          },
          "run_worklist": {
            "default": false,
            "description": "Run the panel worklist when the import lands.",
            "title": "Run Worklist",
            "type": "boolean"
          }
        },
        "title": "CommitBody",
        "type": "object"
      },
      "CommitIn": {
        "properties": {
          "cancer_type": {
            "description": "breast | colorectal | prostate | lung | melanoma | other",
            "title": "Cancer Type",
            "type": "string"
          },
          "clinician": {
            "description": "staff_ref of the clinician who reviewed the draft.",
            "title": "Clinician",
            "type": "string"
          },
          "diagnosis_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Diagnosis Date"
          },
          "episode_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Add to this existing episode instead of a new one.",
            "title": "Episode Ref"
          },
          "histology_text": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Histology Text"
          },
          "stage_text": {
            "anyOf": [
              {
                "maxLength": 60,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stage Text"
          },
          "status": {
            "description": "active_treatment | completed_treatment | surveillance | recurrence",
            "title": "Status",
            "type": "string"
          },
          "treatments": {
            "description": "Each with the modality the clinician chose (surgery | chemotherapy | radiation | immunotherapy | targeted | hormonal | ...), agents, start, end, detail, site.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Treatments",
            "type": "array"
          }
        },
        "required": [
          "clinician",
          "cancer_type",
          "status"
        ],
        "title": "CommitIn",
        "type": "object"
      },
      "ConditionReportCreate": {
        "properties": {
          "action_taken": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action Taken"
          },
          "category": {
            "description": "incident: fall_injury | skin | behavior | elopement | resident_to_resident | injury_unknown_origin | other; change_of_condition: mental_status | mobility | eating_drinking | breathing | skin | pain | toileting | mood_behavior | sleep | vital_signs | other",
            "title": "Category",
            "type": "string"
          },
          "description": {
            "maxLength": 4000,
            "title": "Description",
            "type": "string"
          },
          "kind": {
            "description": "incident | change_of_condition",
            "title": "Kind",
            "type": "string"
          },
          "noticed_since": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Noticed Since"
          },
          "occurred_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Occurred At"
          },
          "request": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "review_now | review_today | information_only (change of condition defaults to review_today)",
            "title": "Request"
          },
          "severity": {
            "description": "no_harm | monitoring_needed | harm",
            "title": "Severity",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "category",
          "severity",
          "description"
        ],
        "title": "ConditionReportCreate",
        "type": "object"
      },
      "ConnectionsResponse": {
        "properties": {
          "connect_in_app_only": {
            "default": true,
            "description": "Connecting is the member's act in the Norvya app.",
            "title": "Connect In App Only",
            "type": "boolean"
          },
          "connections": {
            "items": {
              "$ref": "#/components/schemas/RecordConnection"
            },
            "title": "Connections",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "shared": {
            "description": "False when the member does not share medical history with you; connections is then empty.",
            "title": "Shared",
            "type": "boolean"
          }
        },
        "required": [
          "member_ref",
          "shared",
          "connections"
        ],
        "title": "ConnectionsResponse",
        "type": "object"
      },
      "ConsentIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who documented the consent.",
            "title": "Clinician",
            "type": "string"
          },
          "consent_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Date"
          },
          "cost_sharing_informed": {
            "description": "The patient was told cost sharing applies.",
            "title": "Cost Sharing Informed",
            "type": "boolean"
          },
          "method": {
            "description": "verbal | written",
            "title": "Method",
            "type": "string"
          },
          "specialist_consult": {
            "description": "Permission to consult the psychiatric consultant / specialists.",
            "title": "Specialist Consult",
            "type": "boolean"
          }
        },
        "required": [
          "clinician",
          "method",
          "specialist_consult",
          "cost_sharing_informed"
        ],
        "title": "ConsentIn",
        "type": "object"
      },
      "Conversation": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/MessageOut"
            },
            "title": "Items",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "messages_allowed": {
            "description": "false: the member turned messages from you off.",
            "title": "Messages Allowed",
            "type": "boolean"
          }
        },
        "required": [
          "member_ref",
          "messages_allowed",
          "items"
        ],
        "title": "Conversation",
        "type": "object"
      },
      "ConvertIn": {
        "additionalProperties": false,
        "properties": {
          "destination_country": {
            "default": "US",
            "maxLength": 2,
            "minLength": 2,
            "title": "Destination Country",
            "type": "string"
          },
          "planned_arrival": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Planned Arrival"
          },
          "treating_facility": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Treating Facility"
          }
        },
        "title": "ConvertIn",
        "type": "object"
      },
      "CountsBlock": {
        "properties": {
          "counts": {
            "additionalProperties": {
              "$ref": "#/components/schemas/routers__partner_api_roster__Cell"
            },
            "description": "queued | sent | not_sent | send_failed | opened | joined | expired | revoked | declined | already_member | opted_out | not_invitable",
            "title": "Counts",
            "type": "object"
          },
          "total": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total"
          },
          "total_suppressed": {
            "title": "Total Suppressed",
            "type": "boolean"
          }
        },
        "required": [
          "counts",
          "total_suppressed"
        ],
        "title": "CountsBlock",
        "type": "object"
      },
      "Crisis": {
        "properties": {
          "guidance": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guidance"
          },
          "latest_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest At"
          },
          "open": {
            "description": "A questionnaire tripped Norvya's crisis gate since the last review. The patient already saw crisis resources and your staff were notified in Norvya.",
            "title": "Open",
            "type": "boolean"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          }
        },
        "required": [
          "open"
        ],
        "title": "Crisis",
        "type": "object"
      },
      "DaysAtHomeResponse": {
        "properties": {
          "days_at_home": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Null when no ascertainment period covers the window: no ascertainment, no number.",
            "title": "Days At Home"
          },
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "observed": {
            "additionalProperties": true,
            "title": "Observed",
            "type": "object"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "window": {
            "additionalProperties": true,
            "title": "Window",
            "type": "object"
          }
        },
        "required": [
          "member_ref",
          "window",
          "observed",
          "disclaimer"
        ],
        "title": "DaysAtHomeResponse",
        "type": "object"
      },
      "DeliveryCreate": {
        "properties": {
          "mark_filled": {
            "default": false,
            "title": "Mark Filled",
            "type": "boolean"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "notify_family": {
            "default": false,
            "description": "Norvya's generic notice to family members the patient chose to share medications with.",
            "title": "Notify Family",
            "type": "boolean"
          },
          "recipient_name": {
            "maxLength": 120,
            "title": "Recipient Name",
            "type": "string"
          }
        },
        "required": [
          "recipient_name"
        ],
        "title": "DeliveryCreate",
        "type": "object"
      },
      "DischargeIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician discharging.",
            "title": "Clinician",
            "type": "string"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date"
          },
          "reason": {
            "description": "goals_met | referred_specialty_care | six_month_break | patient_declined | moved_or_transferred | other",
            "title": "Reason",
            "type": "string"
          },
          "relapse_prevention_plan": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Required for goals_met.",
            "title": "Relapse Prevention Plan"
          }
        },
        "required": [
          "clinician",
          "reason"
        ],
        "title": "DischargeIn",
        "type": "object"
      },
      "DocumentList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/DocumentOut"
            },
            "title": "Items",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "not_available": {
            "description": "Document kinds Norvya does not serve here, and why.",
            "items": {
              "$ref": "#/components/schemas/KindReason"
            },
            "title": "Not Available",
            "type": "array"
          },
          "part2_program": {
            "description": "True when your organisation is a 42 CFR Part 2 program: no documents are disclosed through this API.",
            "title": "Part2 Program",
            "type": "boolean"
          },
          "withheld": {
            "description": "Kinds that exist for this patient but their sharing choices withhold (reason member_not_sharing).",
            "items": {
              "$ref": "#/components/schemas/KindReason"
            },
            "title": "Withheld",
            "type": "array"
          }
        },
        "required": [
          "member_ref",
          "items",
          "withheld",
          "not_available",
          "part2_program"
        ],
        "title": "DocumentList",
        "type": "object"
      },
      "DocumentOut": {
        "properties": {
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "default_language": {
            "description": "The patient's app language when supported, else en.",
            "title": "Default Language",
            "type": "string"
          },
          "document_ref": {
            "examples": [
              "doc_scp_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Document Ref",
            "type": "string"
          },
          "issued_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issued At"
          },
          "kind": {
            "examples": [
              "survivorship_plan"
            ],
            "title": "Kind",
            "type": "string"
          },
          "languages": {
            "description": "Languages the content can be rendered in.",
            "items": {
              "type": "string"
            },
            "title": "Languages",
            "type": "array"
          },
          "loinc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Loinc"
          },
          "media_type": {
            "examples": [
              "application/pdf"
            ],
            "title": "Media Type",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "see_also": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The family endpoint that also serves this document.",
            "title": "See Also"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "version": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version"
          }
        },
        "required": [
          "document_ref",
          "kind",
          "title",
          "media_type",
          "languages",
          "default_language",
          "member_ref"
        ],
        "title": "DocumentOut",
        "type": "object"
      },
      "DocumentReferenceResponse": {
        "description": "A FHIR R4 DocumentReference (no id: your server assigns one when you file it).",
        "examples": [
          {
            "category": [
              {
                "coding": [
                  {
                    "code": "clinical-note",
                    "display": "Clinical Note",
                    "system": "http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category"
                  }
                ]
              }
            ],
            "content": [
              {
                "attachment": {
                  "contentType": "text/plain; charset=utf-8",
                  "creation": "2026-10-15T14:02:11Z",
                  "data": "UHJlLXZpc2l0IGJyaWVm...",
                  "title": "Pre-visit brief"
                }
              }
            ],
            "context": {
              "period": {
                "end": "2026-10-15T14:02:11Z",
                "start": "2026-10-15T14:02:11Z"
              }
            },
            "date": "2026-10-15T14:02:11Z",
            "description": "Pre-visit brief",
            "docStatus": "preliminary",
            "resourceType": "DocumentReference",
            "status": "current",
            "subject": {
              "reference": "Patient/123"
            },
            "type": {
              "coding": [
                {
                  "code": "34133-9",
                  "display": "Summary of episode note",
                  "system": "http://loinc.org"
                }
              ],
              "text": "Summary of episode note"
            }
          }
        ],
        "properties": {
          "category": {
            "items": {
              "$ref": "#/components/schemas/FhirCodeableConcept"
            },
            "title": "Category",
            "type": "array"
          },
          "content": {
            "items": {
              "$ref": "#/components/schemas/FhirContent"
            },
            "title": "Content",
            "type": "array"
          },
          "context": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FhirDocContext"
              },
              {
                "type": "null"
              }
            ]
          },
          "date": {
            "title": "Date",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "docStatus": {
            "title": "Docstatus",
            "type": "string"
          },
          "resourceType": {
            "default": "DocumentReference",
            "title": "Resourcetype",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/FhirReference"
          },
          "type": {
            "$ref": "#/components/schemas/FhirCodeableConcept"
          }
        },
        "required": [
          "status",
          "docStatus",
          "type",
          "subject",
          "date",
          "content"
        ],
        "title": "DocumentReferenceResponse",
        "type": "object"
      },
      "DxCategory": {
        "properties": {
          "category": {
            "description": "ICD-10-CM 3-character category.",
            "examples": [
              "E11"
            ],
            "title": "Category",
            "type": "string"
          },
          "claims": {
            "title": "Claims",
            "type": "integer"
          }
        },
        "required": [
          "category",
          "claims"
        ],
        "title": "DxCategory",
        "type": "object"
      },
      "DyadContactIn": {
        "properties": {
          "after_hours": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "After Hours"
          },
          "contact_on": {
            "description": "YYYY-MM-DD",
            "examples": [
              "2026-10-14"
            ],
            "title": "Contact On",
            "type": "string"
          },
          "kind": {
            "description": "navigator_checkin | care_plan_review | education | support_line | respite_arranged | referral | other",
            "examples": [
              "navigator_checkin"
            ],
            "title": "Kind",
            "type": "string"
          },
          "minutes": {
            "anyOf": [
              {
                "maximum": 600.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minutes"
          },
          "staff": {
            "description": "staff_ref of the member of your staff who made the contact.",
            "title": "Staff",
            "type": "string"
          },
          "who": {
            "default": "both",
            "description": "beneficiary | caregiver | both",
            "title": "Who",
            "type": "string"
          }
        },
        "required": [
          "contact_on",
          "kind",
          "staff"
        ],
        "title": "DyadContactIn",
        "type": "object"
      },
      "DyadContactOut": {
        "properties": {
          "after_hours": {
            "title": "After Hours",
            "type": "boolean"
          },
          "contact_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact On"
          },
          "created": {
            "title": "Created",
            "type": "boolean"
          },
          "dyad_ref": {
            "title": "Dyad Ref",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minutes"
          },
          "staff": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Staff"
          },
          "who": {
            "title": "Who",
            "type": "string"
          }
        },
        "required": [
          "dyad_ref",
          "kind",
          "who",
          "after_hours",
          "created"
        ],
        "title": "DyadContactOut",
        "type": "object"
      },
      "EcrBuildResponse": {
        "properties": {
          "build": {
            "additionalProperties": true,
            "description": "Counts, what was withheld and why; never the document.",
            "title": "Build",
            "type": "object"
          },
          "report": {
            "$ref": "#/components/schemas/EcrReport"
          }
        },
        "required": [
          "report",
          "build"
        ],
        "title": "EcrBuildResponse",
        "type": "object"
      },
      "EcrCandidate": {
        "properties": {
          "candidate_ref": {
            "examples": [
              "ecc_1b3d5f7a9c0e2a4c6e8a0b2d"
            ],
            "title": "Candidate Ref",
            "type": "string"
          },
          "condition": {
            "additionalProperties": true,
            "title": "Condition",
            "type": "object"
          },
          "detected_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detected At"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "override_recorded": {
            "title": "Override Recorded",
            "type": "boolean"
          },
          "reportability": {
            "title": "Reportability",
            "type": "string"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          },
          "sharing_blocked": {
            "description": "The trigger data sits behind a sharing flag the patient left closed; confirming needs a clinician's recorded override in Norvya.",
            "title": "Sharing Blocked",
            "type": "boolean"
          },
          "source": {
            "additionalProperties": true,
            "title": "Source",
            "type": "object"
          },
          "status": {
            "description": "candidate | confirmed | dismissed | sent | failed",
            "examples": [
              "candidate"
            ],
            "title": "Status",
            "type": "string"
          },
          "trigger": {
            "additionalProperties": true,
            "title": "Trigger",
            "type": "object"
          }
        },
        "required": [
          "candidate_ref",
          "member_ref",
          "status",
          "trigger",
          "condition",
          "source",
          "sharing_blocked",
          "override_recorded",
          "reportability"
        ],
        "title": "EcrCandidate",
        "type": "object"
      },
      "EcrCandidateList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/EcrCandidate"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "EcrCandidateList",
        "type": "object"
      },
      "EcrEvaluateResponse": {
        "properties": {
          "candidates": {
            "items": {
              "$ref": "#/components/schemas/EcrCandidate"
            },
            "title": "Candidates",
            "type": "array"
          },
          "coverage": {
            "additionalProperties": true,
            "title": "Coverage",
            "type": "object"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "candidates",
          "coverage"
        ],
        "title": "EcrEvaluateResponse",
        "type": "object"
      },
      "EcrReport": {
        "properties": {
          "candidate_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidate Ref"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "format": {
            "examples": [
              "fhir_eicr"
            ],
            "title": "Format",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "part2_withheld": {
            "title": "Part2 Withheld",
            "type": "integer"
          },
          "report_ref": {
            "examples": [
              "ecr_7c9e1a3b5d7f9a1c3e5a7b9d"
            ],
            "title": "Report Ref",
            "type": "string"
          },
          "reportability_response": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "What public health sent back; only this establishes reportability.",
            "title": "Reportability Response"
          },
          "rr_received_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rr Received At"
          },
          "set_id": {
            "title": "Set Id",
            "type": "string"
          },
          "simulated": {
            "title": "Simulated",
            "type": "boolean"
          },
          "status": {
            "description": "built | sent | failed",
            "examples": [
              "sent"
            ],
            "title": "Status",
            "type": "string"
          },
          "transmitted_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transmitted At"
          },
          "version": {
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "report_ref",
          "member_ref",
          "format",
          "set_id",
          "version",
          "status",
          "part2_withheld",
          "simulated"
        ],
        "title": "EcrReport",
        "type": "object"
      },
      "EcrReportList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/EcrReport"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "EcrReportList",
        "type": "object"
      },
      "EcrReviewBody": {
        "properties": {
          "action": {
            "description": "confirm | dismiss",
            "examples": [
              "confirm"
            ],
            "title": "Action",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": [
          "action"
        ],
        "title": "EcrReviewBody",
        "type": "object"
      },
      "EcrStatus": {
        "properties": {
          "active": {
            "title": "Active",
            "type": "boolean"
          },
          "adapter": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "direct"
            ],
            "title": "Adapter"
          },
          "coverage": {
            "additionalProperties": true,
            "title": "Coverage",
            "type": "object"
          },
          "ersd": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "The trigger-code release Norvya matches against.",
            "title": "Ersd"
          },
          "ig_version": {
            "title": "Ig Version",
            "type": "string"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Jurisdiction"
          },
          "missing": {
            "examples": [
              [
                "case_reporting_not_enabled"
              ]
            ],
            "items": {
              "type": "string"
            },
            "title": "Missing",
            "type": "array"
          },
          "not_claimed": {
            "items": {
              "type": "string"
            },
            "title": "Not Claimed",
            "type": "array"
          },
          "posture": {
            "title": "Posture",
            "type": "string"
          },
          "reportability_determined_by": {
            "title": "Reportability Determined By",
            "type": "string"
          },
          "respect_sharing_flags": {
            "title": "Respect Sharing Flags",
            "type": "boolean"
          },
          "simulated": {
            "title": "Simulated",
            "type": "boolean"
          }
        },
        "required": [
          "active",
          "missing",
          "respect_sharing_flags",
          "coverage",
          "reportability_determined_by",
          "not_claimed",
          "ig_version",
          "simulated",
          "posture"
        ],
        "title": "EcrStatus",
        "type": "object"
      },
      "EncounterItem": {
        "properties": {
          "acknowledged": {
            "description": "A staff member at your practice acknowledged it in Norvya.",
            "title": "Acknowledged",
            "type": "boolean"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A member-reported admission's discharge date.",
            "title": "End Date"
          },
          "event": {
            "description": "admit | discharge | ed_visit | transfer",
            "examples": [
              "discharge"
            ],
            "title": "Event",
            "type": "string"
          },
          "event_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event At"
          },
          "facility": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "General Hospital"
            ],
            "title": "Facility"
          },
          "notice_id": {
            "description": "Opaque, stable id of this notice at your organisation (de-duplicate on it).",
            "examples": [
              "oen_2b7d9f0a1c3e5b7d9f0a1c3e"
            ],
            "title": "Notice Id",
            "type": "string"
          },
          "received_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Received At"
          },
          "source": {
            "description": "adt_feed (an HL7 ADT from a hospital / HIE feed) | member_reported (the patient sent it to your practice).",
            "examples": [
              "adt_feed"
            ],
            "title": "Source",
            "type": "string"
          },
          "start_date": {
            "description": "The event's date (an admission's start, a discharge's date).",
            "examples": [
              "2026-10-14"
            ],
            "title": "Start Date",
            "type": "string"
          },
          "tcm": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TcmWindow"
              },
              {
                "type": "null"
              }
            ],
            "description": "For a discharge (or a reported admission with a discharge date): the Transitional Care Management clock."
          }
        },
        "required": [
          "notice_id",
          "event",
          "start_date",
          "source",
          "acknowledged"
        ],
        "title": "EncounterItem",
        "type": "object"
      },
      "EncountersResponse": {
        "properties": {
          "days": {
            "examples": [
              90
            ],
            "title": "Days",
            "type": "integer"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/EncounterItem"
            },
            "title": "Items",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "posture": {
            "title": "Posture",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "days",
          "posture",
          "items"
        ],
        "title": "EncountersResponse",
        "type": "object"
      },
      "EngagementResponse": {
        "properties": {
          "available": {
            "title": "Available",
            "type": "boolean"
          },
          "cohort": {
            "$ref": "#/components/schemas/routers__partner_api_fitness_hospital__Cell"
          },
          "comparisons": {
            "additionalProperties": true,
            "description": "fat_loss_quality and weight_lost: engaged / less_engaged {members, average}, difference; null when a tier is too small.",
            "title": "Comparisons",
            "type": "object"
          },
          "engagement_metric": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Engagement Metric"
          },
          "low_confidence": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Low Confidence"
          },
          "median_active_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Median Active Days"
          },
          "min_cell": {
            "title": "Min Cell",
            "type": "integer"
          },
          "note": {
            "title": "Note",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "building (fewer than unlock_at members share) | insufficient_outcomes | null",
            "title": "Reason"
          },
          "unlock_at": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unlock At"
          }
        },
        "required": [
          "min_cell",
          "available",
          "cohort",
          "note"
        ],
        "title": "EngagementResponse",
        "type": "object"
      },
      "EngineReport": {
        "additionalProperties": true,
        "description": "An engine's own structured output, ids removed.",
        "properties": {},
        "title": "EngineReport",
        "type": "object"
      },
      "EnrolmentMember": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "cohort": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cohort"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "invite_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invite Ref"
          },
          "joined_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Joined At"
          },
          "last_sent_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Sent At"
          },
          "member_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Once joined (or already a member) and while linked.",
            "title": "Member Ref"
          },
          "reminders": {
            "default": 0,
            "title": "Reminders",
            "type": "integer"
          },
          "row_number": {
            "title": "Row Number",
            "type": "integer"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "row_number",
          "status"
        ],
        "title": "EnrolmentMember",
        "type": "object"
      },
      "EnrolmentMembers": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/EnrolmentMember"
            },
            "title": "Items",
            "type": "array"
          },
          "limit": {
            "title": "Limit",
            "type": "integer"
          },
          "offset": {
            "title": "Offset",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "total",
          "offset",
          "limit",
          "items"
        ],
        "title": "EnrolmentMembers",
        "type": "object"
      },
      "EnrolmentReport": {
        "properties": {
          "by_cohort": {
            "items": {
              "$ref": "#/components/schemas/CohortCounts"
            },
            "title": "By Cohort",
            "type": "array"
          },
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "members": {
            "$ref": "#/components/schemas/EnrolmentMembers",
            "description": "Your own roster rows (unsuppressed: they are your list)."
          },
          "min_cell": {
            "title": "Min Cell",
            "type": "integer"
          },
          "overall": {
            "$ref": "#/components/schemas/CountsBlock"
          },
          "roster_ref": {
            "title": "Roster Ref",
            "type": "string"
          },
          "suppression": {
            "title": "Suppression",
            "type": "string"
          }
        },
        "required": [
          "roster_ref",
          "generated_at",
          "min_cell",
          "suppression",
          "overall",
          "by_cohort",
          "members"
        ],
        "title": "EnrolmentReport",
        "type": "object"
      },
      "EpisodeCareIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "discipline": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "pt | ot | slp",
            "title": "Discipline"
          },
          "lead_therapist": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "staff_ref of an active staff member of your practice; an empty string clears it.",
            "title": "Lead Therapist"
          }
        },
        "required": [
          "clinician"
        ],
        "title": "EpisodeCareIn",
        "type": "object"
      },
      "EpisodeCheck": {
        "properties": {
          "contact_result": {
            "description": "reached | no_answer | left_message | declined | wrong_number",
            "title": "Contact Result",
            "type": "string"
          },
          "items": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "boolean"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "The check's item_keys you confirmed (reached / declined complete the check).",
            "title": "Items"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": [
          "contact_result"
        ],
        "title": "EpisodeCheck",
        "type": "object"
      },
      "EpisodeClose": {
        "properties": {
          "reopen": {
            "default": false,
            "title": "Reopen",
            "type": "boolean"
          }
        },
        "title": "EpisodeClose",
        "type": "object"
      },
      "EpisodeCreate": {
        "properties": {
          "discharge_date": {
            "description": "YYYY-MM-DD, not in the future.",
            "examples": [
              "2026-10-12"
            ],
            "title": "Discharge Date",
            "type": "string"
          },
          "discharge_meds": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Medication list on discharge: strings or {name, dosage, frequency} objects.",
            "title": "Discharge Meds"
          },
          "discharged_from": {
            "default": "snf",
            "description": "snf | hospital | rehab | other",
            "title": "Discharged From",
            "type": "string"
          },
          "facility_label": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Facility Label"
          },
          "member_ref": {
            "examples": [
              "mr_3f9c1a0b7d2e4c6a8b1d0e2f"
            ],
            "title": "Member Ref",
            "type": "string"
          },
          "pre_admission_meds": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default: the patient's medication list on file in Norvya.",
            "title": "Pre Admission Meds"
          }
        },
        "required": [
          "member_ref",
          "discharge_date"
        ],
        "title": "EpisodeCreate",
        "type": "object"
      },
      "EpisodeMeds": {
        "properties": {
          "discharge_meds": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharge Meds"
          },
          "pre_admission_meds": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pre Admission Meds"
          }
        },
        "title": "EpisodeMeds",
        "type": "object"
      },
      "EpisodeOutcome": {
        "properties": {
          "ed_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ed Date"
          },
          "ed_visit": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ed Visit"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "readmit_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Readmit Date"
          },
          "readmitted": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "null = not known (never read as no).",
            "title": "Readmitted"
          },
          "source": {
            "description": "patient_call | caregiver_call | prescriber | facility | hospital_notification | other",
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "source"
        ],
        "title": "EpisodeOutcome",
        "type": "object"
      },
      "EpisodeResolution": {
        "properties": {
          "item_key": {
            "description": "One of the episode's reconciliation.review_keys.",
            "title": "Item Key",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "status": {
            "description": "confirmed_intentional | prescriber_contacted | corrected | not_applicable",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "item_key",
          "status"
        ],
        "title": "EpisodeResolution",
        "type": "object"
      },
      "ErrorResponse": {
        "properties": {
          "detail": {
            "description": "Stable machine code, e.g. member_not_found, insufficient_scope.",
            "title": "Detail",
            "type": "string"
          }
        },
        "required": [
          "detail"
        ],
        "title": "ErrorResponse",
        "type": "object"
      },
      "ExamRequestIn": {
        "properties": {
          "due_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due On"
          },
          "program": {
            "description": "GET /v1/occupational/programs programs[].key",
            "title": "Program",
            "type": "string"
          },
          "provider_ref": {
            "description": "GET /v1/occupational/providers",
            "title": "Provider Ref",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "supplemental": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Respirator: the 1910.134(e)(5) information the examiner needs (required keys per program).",
            "title": "Supplemental"
          },
          "worker_ref": {
            "title": "Worker Ref",
            "type": "string"
          }
        },
        "required": [
          "worker_ref",
          "provider_ref",
          "program"
        ],
        "title": "ExamRequestIn",
        "type": "object"
      },
      "ExerciseIn": {
        "properties": {
          "name": {
            "examples": [
              "Back Squat"
            ],
            "maxLength": 80,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "sets": {
            "items": {
              "$ref": "#/components/schemas/SetIn"
            },
            "maxItems": 30,
            "minItems": 1,
            "title": "Sets",
            "type": "array"
          }
        },
        "required": [
          "name",
          "sets"
        ],
        "title": "ExerciseIn",
        "type": "object"
      },
      "FacilityIn": {
        "additionalProperties": false,
        "properties": {
          "accreditations": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "[{body, status, expires_on}] AS RECORDED by your desk; Norvya verifies none.",
            "title": "Accreditations"
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address"
          },
          "agreement_expires_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agreement Expires On"
          },
          "agreement_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agreement Status"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City"
          },
          "contacts": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contacts"
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "facility_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Facility Type"
          },
          "languages_spoken": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Languages Spoken"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "specialties": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Specialties"
          },
          "website": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Website"
          }
        },
        "title": "FacilityIn",
        "type": "object"
      },
      "FacilityLinkIn": {
        "additionalProperties": false,
        "properties": {
          "facility_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "null unlinks.",
            "title": "Facility Ref"
          }
        },
        "title": "FacilityLinkIn",
        "type": "object"
      },
      "FamilyIssue": {
        "properties": {
          "attested_by_staff_ref": {
            "title": "Attested By Staff Ref",
            "type": "string"
          },
          "consent_attested": {
            "description": "Must be true: the named staff member attests the resident's or guardian's consent.",
            "title": "Consent Attested",
            "type": "boolean"
          },
          "consent_basis": {
            "description": "resident | guardian",
            "title": "Consent Basis",
            "type": "string"
          },
          "email": {
            "description": "The family member's address; they claim the code signed in with it.",
            "maxLength": 254,
            "title": "Email",
            "type": "string"
          },
          "relationship": {
            "anyOf": [
              {
                "maxLength": 60,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Relationship"
          },
          "share_events": {
            "default": true,
            "description": "Counts and dates of falls, hospital trips and reports (never notes).",
            "title": "Share Events",
            "type": "boolean"
          },
          "share_medications": {
            "default": false,
            "description": "Today's dose counts (never medicine names).",
            "title": "Share Medications",
            "type": "boolean"
          }
        },
        "required": [
          "email",
          "consent_basis",
          "consent_attested",
          "attested_by_staff_ref"
        ],
        "title": "FamilyIssue",
        "type": "object"
      },
      "FhirAttachment": {
        "properties": {
          "contentType": {
            "examples": [
              "text/plain; charset=utf-8"
            ],
            "title": "Contenttype",
            "type": "string"
          },
          "creation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Creation"
          },
          "data": {
            "description": "The brief as UTF-8 text, base64-encoded.",
            "title": "Data",
            "type": "string"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "required": [
          "contentType",
          "data"
        ],
        "title": "FhirAttachment",
        "type": "object"
      },
      "FhirCodeableConcept": {
        "properties": {
          "coding": {
            "items": {
              "$ref": "#/components/schemas/FhirCoding"
            },
            "title": "Coding",
            "type": "array"
          },
          "text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text"
          }
        },
        "title": "FhirCodeableConcept",
        "type": "object"
      },
      "FhirCoding": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "display": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display"
          },
          "system": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "System"
          }
        },
        "title": "FhirCoding",
        "type": "object"
      },
      "FhirContent": {
        "properties": {
          "attachment": {
            "$ref": "#/components/schemas/FhirAttachment"
          }
        },
        "required": [
          "attachment"
        ],
        "title": "FhirContent",
        "type": "object"
      },
      "FhirDocContext": {
        "properties": {
          "period": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FhirPeriod"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "FhirDocContext",
        "type": "object"
      },
      "FhirIdentifier": {
        "properties": {
          "system": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "System"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          }
        },
        "title": "FhirIdentifier",
        "type": "object"
      },
      "FhirPeriod": {
        "properties": {
          "end": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End"
          },
          "start": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start"
          }
        },
        "title": "FhirPeriod",
        "type": "object"
      },
      "FhirReference": {
        "properties": {
          "identifier": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FhirIdentifier"
              },
              {
                "type": "null"
              }
            ]
          },
          "reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "Patient/123"
            ],
            "title": "Reference"
          }
        },
        "title": "FhirReference",
        "type": "object"
      },
      "FoodRuleIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "kind": {
            "description": "avoid | limit",
            "title": "Kind",
            "type": "string"
          },
          "max_per_day": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Per Day"
          },
          "max_per_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Per Week"
          },
          "patient_note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Patient Note"
          },
          "term": {
            "maxLength": 80,
            "title": "Term",
            "type": "string"
          }
        },
        "required": [
          "clinician",
          "kind",
          "term"
        ],
        "title": "FoodRuleIn",
        "type": "object"
      },
      "GfeCancelIn": {
        "properties": {
          "reason": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          }
        },
        "title": "GfeCancelIn",
        "type": "object"
      },
      "GfeIn": {
        "properties": {
          "convening_location": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Convening Location"
          },
          "convening_npi": {
            "anyOf": [
              {
                "maxLength": 20,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Convening Npi"
          },
          "convening_state": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Convening State"
          },
          "convening_tin": {
            "anyOf": [
              {
                "maxLength": 20,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Convening Tin"
          },
          "delivery_method": {
            "default": "in_app",
            "description": "in_app | email | paper | mail",
            "title": "Delivery Method",
            "type": "string"
          },
          "diagnosis_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Diagnosis Codes"
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/GfeLineIn"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Lines",
            "type": "array"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "primary_service": {
            "examples": [
              "Diabetes follow-up visit with A1c"
            ],
            "maxLength": 300,
            "title": "Primary Service",
            "type": "string"
          },
          "separately_scheduled": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Separately Scheduled"
          },
          "service_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD; required when trigger is scheduled.",
            "title": "Service Date"
          },
          "trigger": {
            "description": "scheduled | requested",
            "examples": [
              "scheduled"
            ],
            "title": "Trigger",
            "type": "string"
          },
          "triggered_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD: the scheduling or request date; default today on the practice's clock.",
            "examples": [
              "2026-10-16"
            ],
            "title": "Triggered On"
          }
        },
        "required": [
          "trigger",
          "primary_service",
          "lines"
        ],
        "title": "GfeIn",
        "type": "object"
      },
      "GfeLineIn": {
        "properties": {
          "code_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "CPT | HCPCS | CDT | NDC | DRG | other",
            "examples": [
              "CPT"
            ],
            "title": "Code Type"
          },
          "description": {
            "examples": [
              "Office visit, established patient"
            ],
            "maxLength": 300,
            "title": "Description",
            "type": "string"
          },
          "diagnosis_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 12,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              [
                "E11.9"
              ]
            ],
            "title": "Diagnosis Codes"
          },
          "expected_charge": {
            "description": "Dollars, e.g. \"150.00\" (per unit).",
            "examples": [
              "150.00"
            ],
            "title": "Expected Charge",
            "type": "string"
          },
          "location": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location"
          },
          "npi": {
            "anyOf": [
              {
                "maxLength": 20,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Npi"
          },
          "provider_name": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A co-provider; omit for your practice.",
            "title": "Provider Name"
          },
          "quantity": {
            "default": 1,
            "maximum": 999.0,
            "minimum": 1.0,
            "title": "Quantity",
            "type": "integer"
          },
          "role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "co_provider | co_facility",
            "title": "Role"
          },
          "service_code": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "99213"
            ],
            "title": "Service Code"
          },
          "state": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "tin": {
            "anyOf": [
              {
                "maxLength": 20,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tin"
          }
        },
        "required": [
          "description",
          "expected_charge"
        ],
        "title": "GfeLineIn",
        "type": "object"
      },
      "GfeList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/GfeOut"
            },
            "title": "Items",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "items"
        ],
        "title": "GfeList",
        "type": "object"
      },
      "GfeOut": {
        "properties": {
          "acknowledged": {
            "title": "Acknowledged",
            "type": "boolean"
          },
          "content_sha256": {
            "title": "Content Sha256",
            "type": "string"
          },
          "delivered_via": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivered Via"
          },
          "document": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "The issued document as data (what the PDF shows).",
            "title": "Document"
          },
          "estimate_ref": {
            "examples": [
              "gfe_8b0d2f4a6c8e0a2b4d6f8a0c"
            ],
            "title": "Estimate Ref",
            "type": "string"
          },
          "expected_patient_total_cents": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Patient Total Cents"
          },
          "is_current": {
            "title": "Is Current",
            "type": "boolean"
          },
          "issued_on": {
            "title": "Issued On",
            "type": "string"
          },
          "member_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Member Ref"
          },
          "not_legal_advice": {
            "title": "Not Legal Advice",
            "type": "string"
          },
          "primary_service": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Primary Service"
          },
          "reason": {
            "examples": [
              "initial"
            ],
            "title": "Reason",
            "type": "string"
          },
          "request_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "open | cancelled: the estimate request this version belongs to.",
            "title": "Request Status"
          },
          "retain_until": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retain Until"
          },
          "service_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Service Date"
          },
          "timing": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "§149.610(b)(1)(vi) timing status for the request.",
            "title": "Timing"
          },
          "total_cents": {
            "title": "Total Cents",
            "type": "integer"
          },
          "verified": {
            "title": "Verified",
            "type": "boolean"
          },
          "version": {
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "estimate_ref",
          "version",
          "reason",
          "is_current",
          "issued_on",
          "total_cents",
          "acknowledged",
          "content_sha256",
          "verified",
          "not_legal_advice"
        ],
        "title": "GfeOut",
        "type": "object"
      },
      "GfeReissueIn": {
        "properties": {
          "convening_location": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Convening Location"
          },
          "convening_npi": {
            "anyOf": [
              {
                "maxLength": 20,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Convening Npi"
          },
          "convening_state": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Convening State"
          },
          "convening_tin": {
            "anyOf": [
              {
                "maxLength": 20,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Convening Tin"
          },
          "diagnosis_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Diagnosis Codes"
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/GfeLineIn"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Lines",
            "type": "array"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "change | reschedule; default: reschedule when the request was rescheduled after the current version, else change.",
            "title": "Reason"
          },
          "separately_scheduled": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Separately Scheduled"
          }
        },
        "required": [
          "lines"
        ],
        "title": "GfeReissueIn",
        "type": "object"
      },
      "GfeRescheduleIn": {
        "properties": {
          "scheduled_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD: when the item was rescheduled; default today on the practice's clock.",
            "examples": [
              "2026-10-20"
            ],
            "title": "Scheduled On"
          },
          "service_date": {
            "description": "YYYY-MM-DD: the new date of service.",
            "examples": [
              "2026-11-12"
            ],
            "title": "Service Date",
            "type": "string"
          }
        },
        "required": [
          "service_date"
        ],
        "title": "GfeRescheduleIn",
        "type": "object"
      },
      "GiAlarmIn": {
        "properties": {
          "answers": {
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "Alarm item keys (gi_alarm.ALARM_ITEMS) set true when present.",
            "examples": [
              {
                "blood_in_stool": true
              }
            ],
            "title": "Answers",
            "type": "object"
          }
        },
        "title": "GiAlarmIn",
        "type": "object"
      },
      "GoalIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "discipline": {
            "description": "pt | ot | slp",
            "title": "Discipline",
            "type": "string"
          },
          "domain": {
            "description": "GET .../goals goal_domains[discipline]",
            "title": "Domain",
            "type": "string"
          },
          "episode_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Episode Ref"
          },
          "target_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD, today to two years ahead.",
            "title": "Target Date"
          },
          "text": {
            "maxLength": 200,
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "clinician",
          "discipline",
          "domain",
          "text"
        ],
        "title": "GoalIn",
        "type": "object"
      },
      "GoalUpdate": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "active | met | discontinued",
            "title": "Status"
          },
          "target_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Date"
          },
          "text": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text"
          }
        },
        "required": [
          "clinician"
        ],
        "title": "GoalUpdate",
        "type": "object"
      },
      "GuidanceResponse": {
        "properties": {
          "actions": {
            "description": "Ranked actions: rank, severity, title, detail, based_on (input categories, never values). No internal codes.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Actions",
            "type": "array"
          },
          "available": {
            "title": "Available",
            "type": "boolean"
          },
          "cannot_assess": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Cannot Assess",
            "type": "array"
          },
          "consent": {
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "The member's sharing switches for you.",
            "title": "Consent",
            "type": "object"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "priority": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "The one action to take first.",
            "title": "Priority"
          },
          "shared": {
            "description": "Input categories the member shares.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Shared",
            "type": "array"
          },
          "withheld": {
            "description": "Detail kept from you by design.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Withheld",
            "type": "array"
          }
        },
        "required": [
          "member_ref",
          "available"
        ],
        "title": "GuidanceResponse",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "HahCloseBody": {
        "properties": {
          "end_reason": {
            "description": "discharged_home | escalated_to_facility | died | withdrew | transferred",
            "title": "End Reason",
            "type": "string"
          },
          "ended_on": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ended On"
          }
        },
        "required": [
          "end_reason"
        ],
        "title": "HahCloseBody",
        "type": "object"
      },
      "HahEnrolBody": {
        "properties": {
          "admission_source": {
            "description": "emergency_department | inpatient_bed",
            "title": "Admission Source",
            "type": "string"
          },
          "admitted_on": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Admitted On"
          },
          "escalation_plan_text": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Escalation Plan Text"
          },
          "home_environment_assessed": {
            "title": "Home Environment Assessed",
            "type": "boolean"
          },
          "inpatient_level_attested": {
            "description": "Your admitting clinician attests inpatient-level care is necessary. All three attestations must be true.",
            "title": "Inpatient Level Attested",
            "type": "boolean"
          },
          "member_ref": {
            "maxLength": 160,
            "title": "Member Ref",
            "type": "string"
          },
          "patient_consented": {
            "title": "Patient Consented",
            "type": "boolean"
          },
          "primary_problem_text": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Primary Problem Text"
          },
          "program_name": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Program Name"
          },
          "protocol_clinician_eval_per_day": {
            "anyOf": [
              {
                "maximum": 12.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Protocol Clinician Eval Per Day"
          },
          "protocol_in_person_visits_per_day": {
            "anyOf": [
              {
                "maximum": 12.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Protocol In Person Visits Per Day"
          }
        },
        "required": [
          "member_ref",
          "admission_source",
          "inpatient_level_attested",
          "home_environment_assessed",
          "patient_consented"
        ],
        "title": "HahEnrolBody",
        "type": "object"
      },
      "HahEpisodeDetail": {
        "properties": {
          "admission_source": {
            "title": "Admission Source",
            "type": "string"
          },
          "admitted_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Admitted On"
          },
          "attestations": {
            "additionalProperties": true,
            "title": "Attestations",
            "type": "object"
          },
          "completed_today": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed Today"
          },
          "contact_counts": {
            "additionalProperties": true,
            "title": "Contact Counts",
            "type": "object"
          },
          "contacts": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Contacts",
            "type": "array"
          },
          "daily": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Daily",
            "type": "array"
          },
          "days": {
            "title": "Days",
            "type": "integer"
          },
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "end_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Reason"
          },
          "ended_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ended On"
          },
          "episode_ref": {
            "title": "Episode Ref",
            "type": "string"
          },
          "escalation_plan_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Escalation Plan Text"
          },
          "escalations": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Escalations",
            "type": "array"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "in_person_today": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "In Person Today"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "primary_problem_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Primary Problem Text"
          },
          "program_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Program Name"
          },
          "protocol": {
            "additionalProperties": true,
            "title": "Protocol",
            "type": "object"
          },
          "reference_protocol": {
            "additionalProperties": true,
            "title": "Reference Protocol",
            "type": "object"
          },
          "status": {
            "description": "active | ended",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "episode_ref",
          "member_ref",
          "status",
          "admission_source",
          "attestations",
          "protocol",
          "contact_counts",
          "days",
          "contacts",
          "daily",
          "escalations",
          "reference_protocol",
          "disclaimer"
        ],
        "title": "HahEpisodeDetail",
        "type": "object"
      },
      "HahEpisodeList": {
        "properties": {
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/HahEpisodeOut"
            },
            "title": "Items",
            "type": "array"
          },
          "reference_protocol": {
            "additionalProperties": true,
            "title": "Reference Protocol",
            "type": "object"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "total",
          "items",
          "reference_protocol",
          "disclaimer"
        ],
        "title": "HahEpisodeList",
        "type": "object"
      },
      "HahEpisodeOut": {
        "properties": {
          "admission_source": {
            "title": "Admission Source",
            "type": "string"
          },
          "admitted_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Admitted On"
          },
          "attestations": {
            "additionalProperties": true,
            "title": "Attestations",
            "type": "object"
          },
          "completed_today": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed Today"
          },
          "contact_counts": {
            "additionalProperties": true,
            "title": "Contact Counts",
            "type": "object"
          },
          "end_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Reason"
          },
          "ended_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ended On"
          },
          "episode_ref": {
            "title": "Episode Ref",
            "type": "string"
          },
          "escalation_plan_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Escalation Plan Text"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "in_person_today": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "In Person Today"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "primary_problem_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Primary Problem Text"
          },
          "program_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Program Name"
          },
          "protocol": {
            "additionalProperties": true,
            "title": "Protocol",
            "type": "object"
          },
          "status": {
            "description": "active | ended",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "episode_ref",
          "member_ref",
          "status",
          "admission_source",
          "attestations",
          "protocol",
          "contact_counts"
        ],
        "title": "HahEpisodeOut",
        "type": "object"
      },
      "HccBlock": {
        "properties": {
          "available": {
            "title": "Available",
            "type": "boolean"
          },
          "condition_categories": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Condition Categories"
          },
          "icd_codes_unmapped": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Icd Codes Unmapped"
          },
          "icd_mapped_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Icd Mapped Rate"
          },
          "model": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "hcc_model_not_loaded | no_diagnosis_codes | claims_baa_required",
            "title": "Reason"
          },
          "risk_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Always null; see risk_score_withheld.",
            "title": "Risk Score"
          },
          "risk_score_withheld": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Risk Score Withheld"
          },
          "supports_interactions": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supports Interactions"
          },
          "suppressed_by_hierarchy": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suppressed By Hierarchy"
          }
        },
        "required": [
          "available"
        ],
        "title": "HccBlock",
        "type": "object"
      },
      "HomeworkCounts": {
        "properties": {
          "active": {
            "title": "Active",
            "type": "integer"
          },
          "asked_in_period": {
            "title": "Asked In Period",
            "type": "integer"
          },
          "done_in_period": {
            "title": "Done In Period",
            "type": "integer"
          }
        },
        "required": [
          "active",
          "done_in_period",
          "asked_in_period"
        ],
        "title": "HomeworkCounts",
        "type": "object"
      },
      "HomeworkIn": {
        "properties": {
          "cadence": {
            "default": "weekly",
            "description": "once | daily | weekly",
            "title": "Cadence",
            "type": "string"
          },
          "clinician": {
            "description": "staff_ref of the clinician assigning it (GET /v1/panel/clinicians).",
            "title": "Clinician",
            "type": "string"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date"
          },
          "instructions": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instructions"
          },
          "kind": {
            "description": "thought_record | behavioral_activation | practice | checkin",
            "examples": [
              "behavioral_activation"
            ],
            "title": "Kind",
            "type": "string"
          },
          "practice_kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "practice only: breathing | gratitude | mindfulness | cognitive | gym | social | purpose",
            "title": "Practice Kind"
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD; default today.",
            "title": "Start Date"
          },
          "times_per_week": {
            "anyOf": [
              {
                "maximum": 7.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Times Per Week"
          }
        },
        "required": [
          "clinician",
          "kind"
        ],
        "title": "HomeworkIn",
        "type": "object"
      },
      "HomeworkOut": {
        "properties": {
          "assigned_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "staff_ref",
            "title": "Assigned By"
          },
          "cadence": {
            "title": "Cadence",
            "type": "string"
          },
          "completed_on": {
            "description": "Dates of recorded entries. Never what the client wrote.",
            "items": {
              "type": "string"
            },
            "title": "Completed On",
            "type": "array"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date"
          },
          "homework_ref": {
            "examples": [
              "bhw_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Homework Ref",
            "type": "string"
          },
          "instructions": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instructions"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "practice_kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Practice Kind"
          },
          "progress": {
            "$ref": "#/components/schemas/Progress",
            "description": "Counts only; an unrecorded entry is never 'missed'."
          },
          "start_date": {
            "title": "Start Date",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "times_per_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Times Per Week"
          }
        },
        "required": [
          "homework_ref",
          "member_ref",
          "kind",
          "cadence",
          "start_date",
          "status",
          "progress",
          "completed_on"
        ],
        "title": "HomeworkOut",
        "type": "object"
      },
      "HsIn": {
        "properties": {
          "abscesses": {
            "maximum": 999.0,
            "minimum": 0.0,
            "title": "Abscesses",
            "type": "integer"
          },
          "assessed_on": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessed On"
          },
          "clinician": {
            "description": "staff_ref of the clinician who examined (GET /v1/panel/clinicians).",
            "title": "Clinician",
            "type": "string"
          },
          "draining_tunnels": {
            "maximum": 999.0,
            "minimum": 0.0,
            "title": "Draining Tunnels",
            "type": "integer"
          },
          "flare": {
            "default": false,
            "title": "Flare",
            "type": "boolean"
          },
          "hurley_stage": {
            "anyOf": [
              {
                "maximum": 3.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hurley Stage"
          },
          "nodules": {
            "maximum": 999.0,
            "minimum": 0.0,
            "title": "Nodules",
            "type": "integer"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "sites": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 11,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "GET /v1/derm/vocabulary hs_sites.",
            "title": "Sites"
          }
        },
        "required": [
          "clinician",
          "nodules",
          "abscesses",
          "draining_tunnels"
        ],
        "title": "HsIn",
        "type": "object"
      },
      "IddsiIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "drink_level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "IDDSI drink level 0-4",
            "title": "Drink Level"
          },
          "episode_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Episode Ref"
          },
          "food_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "IDDSI food level: 3 | 4 | 5 | 6 | 7 | 7EC",
            "title": "Food Level"
          },
          "food_transitional": {
            "default": false,
            "title": "Food Transitional",
            "type": "boolean"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": [
          "clinician"
        ],
        "title": "IddsiIn",
        "type": "object"
      },
      "IisPreview": {
        "properties": {
          "immunization_ref": {
            "title": "Immunization Ref",
            "type": "string"
          },
          "information_source": {
            "description": "00 new administration at your organisation, 01 historical.",
            "examples": [
              "00"
            ],
            "title": "Information Source",
            "type": "string"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Jurisdiction"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "message_type": {
            "examples": [
              "VXU^V04"
            ],
            "title": "Message Type",
            "type": "string"
          },
          "note": {
            "title": "Note",
            "type": "string"
          },
          "profile": {
            "examples": [
              "Z22"
            ],
            "title": "Profile",
            "type": "string"
          },
          "segments": {
            "examples": [
              [
                "MSH",
                "PID",
                "ORC",
                "RXA",
                "OBX"
              ]
            ],
            "items": {
              "type": "string"
            },
            "title": "Segments",
            "type": "array"
          },
          "simulated": {
            "title": "Simulated",
            "type": "boolean"
          },
          "standard": {
            "title": "Standard",
            "type": "string"
          },
          "vaccine": {
            "additionalProperties": true,
            "title": "Vaccine",
            "type": "object"
          },
          "vfc_eligibility_included": {
            "title": "Vfc Eligibility Included",
            "type": "boolean"
          },
          "would_transmit": {
            "title": "Would Transmit",
            "type": "boolean"
          }
        },
        "required": [
          "member_ref",
          "immunization_ref",
          "message_type",
          "profile",
          "segments",
          "vaccine",
          "information_source",
          "vfc_eligibility_included",
          "would_transmit",
          "simulated",
          "standard",
          "note"
        ],
        "title": "IisPreview",
        "type": "object"
      },
      "IisQueryBody": {
        "properties": {
          "profile": {
            "default": "Z34",
            "description": "Z34 history, or Z44 evaluated history and forecast.",
            "examples": [
              "Z44"
            ],
            "title": "Profile",
            "type": "string"
          }
        },
        "title": "IisQueryBody",
        "type": "object"
      },
      "IisQueryResponse": {
        "properties": {
          "forecast": {
            "additionalProperties": true,
            "title": "Forecast",
            "type": "object"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/ImmunizationItem"
            },
            "title": "History",
            "type": "array"
          },
          "imported": {
            "additionalProperties": {
              "type": "integer"
            },
            "description": "Doses the answer added to the record, duplicates, skipped.",
            "title": "Imported",
            "type": "object"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "patients_returned": {
            "title": "Patients Returned",
            "type": "integer"
          },
          "query_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "QAK-2: OK, NF not found, TM too many matches, PD protected.",
            "examples": [
              "OK"
            ],
            "title": "Query Status"
          },
          "registry_forecast": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Always null: the registry's evaluated forecast segments are not parsed.",
            "title": "Registry Forecast"
          },
          "simulated": {
            "title": "Simulated",
            "type": "boolean"
          },
          "submission": {
            "$ref": "#/components/schemas/IisSubmissionOut"
          }
        },
        "required": [
          "member_ref",
          "submission",
          "patients_returned",
          "imported",
          "history",
          "forecast",
          "simulated"
        ],
        "title": "IisQueryResponse",
        "type": "object"
      },
      "IisStatus": {
        "properties": {
          "active": {
            "description": "True only when a submission or query would be transmitted.",
            "title": "Active",
            "type": "boolean"
          },
          "agreement_attested": {
            "title": "Agreement Attested",
            "type": "boolean"
          },
          "agreement_attested_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agreement Attested At"
          },
          "attention": {
            "additionalProperties": {
              "type": "integer"
            },
            "description": "Submissions waiting on something, by status.",
            "title": "Attention",
            "type": "object"
          },
          "configured": {
            "title": "Configured",
            "type": "boolean"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "MN"
            ],
            "title": "Jurisdiction"
          },
          "missing": {
            "description": "Onboarding steps still blocking activation.",
            "items": {
              "type": "string"
            },
            "title": "Missing",
            "type": "array"
          },
          "onboarding": {
            "items": {
              "$ref": "#/components/schemas/PhOnboardingStep"
            },
            "title": "Onboarding",
            "type": "array"
          },
          "posture": {
            "title": "Posture",
            "type": "string"
          },
          "query_profiles": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Query Profiles",
            "type": "object"
          },
          "registry": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The registry's name when Norvya has profiled the state.",
            "examples": [
              "Minnesota Immunization Information Connection (MIIC)"
            ],
            "title": "Registry"
          },
          "retry_policy": {
            "additionalProperties": true,
            "title": "Retry Policy",
            "type": "object"
          },
          "simulated": {
            "description": "Sandbox: every transmission is simulated.",
            "title": "Simulated",
            "type": "boolean"
          },
          "standard": {
            "title": "Standard",
            "type": "string"
          },
          "status": {
            "description": "not_configured | testing | active",
            "examples": [
              "active"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "configured",
          "active",
          "status",
          "agreement_attested",
          "onboarding",
          "missing",
          "attention",
          "query_profiles",
          "retry_policy",
          "standard",
          "simulated",
          "posture"
        ],
        "title": "IisStatus",
        "type": "object"
      },
      "IisSubmissionList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/IisSubmissionOut"
            },
            "title": "Items",
            "type": "array"
          },
          "posture": {
            "title": "Posture",
            "type": "string"
          }
        },
        "required": [
          "items",
          "posture"
        ],
        "title": "IisSubmissionList",
        "type": "object"
      },
      "IisSubmissionOut": {
        "properties": {
          "accepted": {
            "title": "Accepted",
            "type": "boolean"
          },
          "ack_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "MSA-1 (AA / AE / AR / CA / CE / CR) or QAK-2 for a query.",
            "examples": [
              "AA"
            ],
            "title": "Ack Code"
          },
          "attempt_count": {
            "title": "Attempt Count",
            "type": "integer"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Norvya's machine code for why it is not accepted.",
            "examples": [
              null
            ],
            "title": "Error Code"
          },
          "immunization_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Immunization Ref"
          },
          "max_attempts": {
            "title": "Max Attempts",
            "type": "integer"
          },
          "member_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Member Ref"
          },
          "message_type": {
            "description": "VXU (dose report) | QBP (history query)",
            "examples": [
              "VXU"
            ],
            "title": "Message Type",
            "type": "string"
          },
          "next_attempt_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Attempt At"
          },
          "query_profile": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              null
            ],
            "title": "Query Profile"
          },
          "registry_error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The registry's own ERR-3 code, when it sent one.",
            "title": "Registry Error Code"
          },
          "sent_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sent At"
          },
          "simulated": {
            "title": "Simulated",
            "type": "boolean"
          },
          "status": {
            "description": "queued | accepted | retry_scheduled | needs_review | failed_permanent | review_closed | not_sent",
            "examples": [
              "accepted"
            ],
            "title": "Status",
            "type": "string"
          },
          "submission_ref": {
            "examples": [
              "iis_9a2b4c6d8e0f1a3b5c7d9e1f"
            ],
            "title": "Submission Ref",
            "type": "string"
          }
        },
        "required": [
          "submission_ref",
          "message_type",
          "status",
          "accepted",
          "attempt_count",
          "max_attempts",
          "simulated"
        ],
        "title": "IisSubmissionOut",
        "type": "object"
      },
      "ImmunizationItem": {
        "properties": {
          "cvx": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "115"
            ],
            "title": "Cvx"
          },
          "display": {
            "examples": [
              "Tdap (tetanus, diphtheria, whooping cough)"
            ],
            "title": "Display",
            "type": "string"
          },
          "dose_number": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dose Number"
          },
          "group": {
            "examples": [
              "tdap_td"
            ],
            "title": "Group",
            "type": "string"
          },
          "immunization_ref": {
            "examples": [
              "imz_3f9c1a0b7d2e4c6a8b1d0e2f"
            ],
            "title": "Immunization Ref",
            "type": "string"
          },
          "lot_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lot Number"
          },
          "occurrence_date": {
            "examples": [
              "2026-09-30"
            ],
            "title": "Occurrence Date",
            "type": "string"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "clinic"
            ],
            "title": "Source"
          },
          "vaccine_key": {
            "examples": [
              "tdap"
            ],
            "title": "Vaccine Key",
            "type": "string"
          },
          "verification": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "staff_recorded | document_reviewed | self_reported",
            "examples": [
              "staff_recorded"
            ],
            "title": "Verification"
          }
        },
        "required": [
          "immunization_ref",
          "vaccine_key",
          "group",
          "display",
          "occurrence_date"
        ],
        "title": "ImmunizationItem",
        "type": "object"
      },
      "ImmunizationsResponse": {
        "properties": {
          "forecast": {
            "additionalProperties": true,
            "description": "Norvya's adult forecast (immunizations.forecast): a reading aid on top of the record, not the registry's forecast.",
            "title": "Forecast",
            "type": "object"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/ImmunizationItem"
            },
            "title": "Items",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "items",
          "forecast"
        ],
        "title": "ImmunizationsResponse",
        "type": "object"
      },
      "ImportIn": {
        "properties": {
          "bundle": {
            "additionalProperties": true,
            "description": "A FHIR R4 Bundle for this ONE patient (mCODE profiles or ICD-10-CM / SNOMED CT cancer codes). Not stored; its SHA-256 is.",
            "title": "Bundle",
            "type": "object"
          },
          "clinician": {
            "description": "staff_ref of the clinician the draft is filed for.",
            "title": "Clinician",
            "type": "string"
          }
        },
        "required": [
          "clinician",
          "bundle"
        ],
        "title": "ImportIn",
        "type": "object"
      },
      "ImportOut": {
        "properties": {
          "bundle_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bundle Sha256"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By"
          },
          "decided_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decided At"
          },
          "decided_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decided By"
          },
          "episode_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Episode Ref"
          },
          "import_ref": {
            "examples": [
              "onx_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Import Ref",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "proposal": {
            "additionalProperties": true,
            "title": "Proposal",
            "type": "object"
          },
          "resource_counts": {
            "additionalProperties": true,
            "title": "Resource Counts",
            "type": "object"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          },
          "status": {
            "description": "draft | confirmed | discarded",
            "title": "Status",
            "type": "string"
          },
          "unmapped": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Unmapped",
            "type": "array"
          },
          "unmapped_total": {
            "title": "Unmapped Total",
            "type": "integer"
          }
        },
        "required": [
          "import_ref",
          "member_ref",
          "status",
          "proposal",
          "unmapped",
          "unmapped_total",
          "resource_counts"
        ],
        "title": "ImportOut",
        "type": "object"
      },
      "InformedIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who did it (GET /v1/panel/clinicians).",
            "examples": [
              "stf_1a2b3c4d5e6f7a8b9c0d1e2f"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "method": {
            "description": "phone | portal_message | in_person | letter | other",
            "title": "Method",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": [
          "clinician",
          "method"
        ],
        "title": "InformedIn",
        "type": "object"
      },
      "InjuryIn": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Clinical; never shown to the employer.",
            "title": "Description"
          },
          "employee_ref": {
            "description": "The employer's own employee number for the worker.",
            "title": "Employee Ref",
            "type": "string"
          },
          "employer_ref": {
            "description": "GET /v1/occupational/provider/employers",
            "title": "Employer Ref",
            "type": "string"
          },
          "occurred_on": {
            "title": "Occurred On",
            "type": "string"
          },
          "outcome": {
            "default": "unknown",
            "description": "treatment_only | restricted_work | days_away | referred | unknown",
            "title": "Outcome",
            "type": "string"
          },
          "work_related": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "null = not known",
            "title": "Work Related"
          }
        },
        "required": [
          "employer_ref",
          "employee_ref",
          "occurred_on"
        ],
        "title": "InjuryIn",
        "type": "object"
      },
      "InquiryIn": {
        "additionalProperties": false,
        "properties": {
          "condition_summary": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your coordinator's words; never coded or interpreted.",
            "title": "Condition Summary"
          },
          "contact_detail": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Kept for the desk; Norvya sends nothing to it.",
            "title": "Contact Detail"
          },
          "contact_name": {
            "maxLength": 200,
            "title": "Contact Name",
            "type": "string"
          },
          "external_id": {
            "anyOf": [
              {
                "maxLength": 64,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your CRM's id for the inquiry (unique per desk; 409 inquiry_external_id_taken).",
            "examples": [
              "CRM-2026-00417"
            ],
            "title": "External Id"
          },
          "interpreter_required": {
            "default": false,
            "title": "Interpreter Required",
            "type": "boolean"
          },
          "member_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A patient on your active roster (needed for an in-app quote and to convert).",
            "title": "Member Ref"
          },
          "origin_country": {
            "examples": [
              "AE"
            ],
            "maxLength": 2,
            "minLength": 2,
            "title": "Origin Country",
            "type": "string"
          },
          "primary_language": {
            "default": "en",
            "examples": [
              "ar"
            ],
            "maxLength": 8,
            "title": "Primary Language",
            "type": "string"
          },
          "sponsor_name": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sponsor Name"
          },
          "sponsor_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "government"
            ],
            "title": "Sponsor Type"
          }
        },
        "required": [
          "contact_name",
          "origin_country"
        ],
        "title": "InquiryIn",
        "type": "object"
      },
      "InquiryPatch": {
        "additionalProperties": false,
        "properties": {
          "condition_summary": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Condition Summary"
          },
          "contact_detail": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact Detail"
          },
          "contact_name": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact Name"
          },
          "interpreter_required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interpreter Required"
          },
          "member_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Link a patient on your roster; an empty string unlinks. Refused once a quote exists (409 inquiry_already_quoted).",
            "title": "Member Ref"
          },
          "origin_country": {
            "anyOf": [
              {
                "maxLength": 2,
                "minLength": 2,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Country"
          },
          "primary_language": {
            "anyOf": [
              {
                "maxLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Primary Language"
          },
          "sponsor_name": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sponsor Name"
          },
          "sponsor_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sponsor Type"
          }
        },
        "title": "InquiryPatch",
        "type": "object"
      },
      "InquiryStatusIn": {
        "additionalProperties": false,
        "properties": {
          "reason": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Kept when declining.",
            "title": "Reason"
          },
          "to_status": {
            "description": "A status in next_statuses (quoted comes from issuing a quote, converted from convert).",
            "examples": [
              "reviewing"
            ],
            "title": "To Status",
            "type": "string"
          }
        },
        "required": [
          "to_status"
        ],
        "title": "InquiryStatusIn",
        "type": "object"
      },
      "InstrumentLicence": {
        "properties": {
          "holder": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Holder"
          },
          "on_licensed_path": {
            "title": "On Licensed Path",
            "type": "boolean"
          },
          "verdict": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "instrument_licences verdict (public_domain, free, permission_required ...)",
            "title": "Verdict"
          }
        },
        "required": [
          "on_licensed_path"
        ],
        "title": "InstrumentLicence",
        "type": "object"
      },
      "InstrumentList": {
        "properties": {
          "clinician_rated": {
            "items": {
              "$ref": "#/components/schemas/ClinicianRatedOut"
            },
            "title": "Clinician Rated",
            "type": "array"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/InstrumentOut"
            },
            "title": "Items",
            "type": "array"
          },
          "not_requestable": {
            "description": "Every other questionnaire Norvya supports, with why it cannot be requested here.",
            "items": {
              "$ref": "#/components/schemas/NotRequestableOut"
            },
            "title": "Not Requestable",
            "type": "array"
          },
          "note": {
            "title": "Note",
            "type": "string"
          }
        },
        "required": [
          "items",
          "note"
        ],
        "title": "InstrumentList",
        "type": "object"
      },
      "InstrumentOut": {
        "properties": {
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "crisis_capable": {
            "description": "An answer can trip Norvya's crisis gate.",
            "title": "Crisis Capable",
            "type": "boolean"
          },
          "english_validated_only": {
            "description": "Validated wording is served in English only; the app says so in the member's language.",
            "title": "English Validated Only",
            "type": "boolean"
          },
          "estimated_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Minutes"
          },
          "id": {
            "examples": [
              "phq9"
            ],
            "title": "Id",
            "type": "string"
          },
          "item_count": {
            "title": "Item Count",
            "type": "integer"
          },
          "language": {
            "examples": [
              "en"
            ],
            "title": "Language",
            "type": "string"
          },
          "licence": {
            "$ref": "#/components/schemas/InstrumentLicence"
          },
          "licensed": {
            "description": "Served from this deployment's licensed content.",
            "title": "Licensed",
            "type": "boolean"
          },
          "mental_health": {
            "description": "Results readable only while the patient shares mental health with you.",
            "title": "Mental Health",
            "type": "boolean"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "short_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Short Name"
          },
          "version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "PHQ-9"
            ],
            "title": "Version"
          }
        },
        "required": [
          "id",
          "item_count",
          "language",
          "english_validated_only",
          "mental_health",
          "crisis_capable",
          "licensed",
          "licence"
        ],
        "title": "InstrumentOut",
        "type": "object"
      },
      "InstrumentRef": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version"
          }
        },
        "required": [
          "id"
        ],
        "title": "InstrumentRef",
        "type": "object"
      },
      "InstrumentRequestIn": {
        "properties": {
          "external_id": {
            "anyOf": [
              {
                "maxLength": 128,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your id: a retry with it returns the same request.",
            "examples": [
              "ORD-55120"
            ],
            "title": "External Id"
          },
          "instrument_id": {
            "examples": [
              "phq9"
            ],
            "title": "Instrument Id",
            "type": "string"
          }
        },
        "required": [
          "instrument_id"
        ],
        "title": "InstrumentRequestIn",
        "type": "object"
      },
      "InstrumentRequestOut": {
        "properties": {
          "created": {
            "title": "Created",
            "type": "boolean"
          },
          "instrument_id": {
            "title": "Instrument Id",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "notified": {
            "description": "Norvya sent its generic notification (never in a sandbox).",
            "title": "Notified",
            "type": "boolean"
          },
          "response_ref": {
            "examples": [
              "ir_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Response Ref",
            "type": "string"
          },
          "results_visible": {
            "description": "Whether the patient's current sharing lets you read the result.",
            "title": "Results Visible",
            "type": "boolean"
          },
          "status": {
            "examples": [
              "requested"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "response_ref",
          "instrument_id",
          "status",
          "created",
          "notified",
          "results_visible"
        ],
        "title": "InstrumentRequestOut",
        "type": "object"
      },
      "InstrumentResponseOut": {
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "crisis_flag": {
            "description": "The response tripped Norvya's crisis gate (the patient saw crisis resources first; your staff were notified in Norvya).",
            "title": "Crisis Flag",
            "type": "boolean"
          },
          "crisis_guidance": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Crisis Guidance"
          },
          "instrument": {
            "$ref": "#/components/schemas/InstrumentRef"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "requested_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requested At"
          },
          "requested_by_you": {
            "title": "Requested By You",
            "type": "boolean"
          },
          "response_ref": {
            "title": "Response Ref",
            "type": "string"
          },
          "score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScoreOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "description": "requested | submitted",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "response_ref",
          "instrument",
          "status",
          "requested_by_you",
          "crisis_flag"
        ],
        "title": "InstrumentResponseOut",
        "type": "object"
      },
      "InstrumentResponses": {
        "properties": {
          "answers_included": {
            "default": false,
            "description": "Always false: item-level answers are never returned.",
            "title": "Answers Included",
            "type": "boolean"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/InstrumentResponseOut"
            },
            "title": "Items",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "sharing": {
            "additionalProperties": {
              "type": "boolean"
            },
            "title": "Sharing",
            "type": "object"
          }
        },
        "required": [
          "member_ref",
          "sharing",
          "items"
        ],
        "title": "InstrumentResponses",
        "type": "object"
      },
      "InviteCreated": {
        "properties": {
          "channel": {
            "description": "email | none",
            "examples": [
              "email"
            ],
            "title": "Channel",
            "type": "string"
          },
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The invitation's one-time join code, shown ONCE.",
            "examples": [
              "NV-7KQ2M-X9RTA"
            ],
            "title": "Code"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "deduplicated": {
            "description": "true: an open invitation to this address already existed and is returned (no second email; code and join_url are not shown again).",
            "title": "Deduplicated",
            "type": "boolean"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "invite_ref": {
            "examples": [
              "inv_Yc3l0bVhR2vXqk9d8Lw1rA"
            ],
            "title": "Invite Ref",
            "type": "string"
          },
          "join_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Opens the app's join screen with the code, shown ONCE.",
            "examples": [
              "norvya://join?code=NV-7KQ2M-X9RTA"
            ],
            "title": "Join Url"
          },
          "joined_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Joined At"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "member_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Once the person joined and while they stay linked.",
            "examples": [
              "mr_3f9c1a0b7d2e4c6a8b1d0e2f"
            ],
            "title": "Member Ref"
          },
          "notice": {
            "title": "Notice",
            "type": "string"
          },
          "opened_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Opened At"
          },
          "revoked_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Revoked At"
          },
          "sent_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sent At"
          },
          "sharing_request": {
            "items": {
              "type": "string"
            },
            "title": "Sharing Request",
            "type": "array"
          },
          "simulated": {
            "description": "Sandbox: recorded, never emailed.",
            "title": "Simulated",
            "type": "boolean"
          },
          "status": {
            "description": "sent | not_sent (no email: you deliver join_url) | send_failed | opened (the person opened the join screen with it) | joined | expired | revoked",
            "examples": [
              "sent"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "invite_ref",
          "status",
          "channel",
          "simulated",
          "deduplicated",
          "notice"
        ],
        "title": "InviteCreated",
        "type": "object"
      },
      "InviteIn": {
        "properties": {
          "email": {
            "anyOf": [
              {
                "maxLength": 254,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Where Norvya sends its invitation email.",
            "examples": [
              "alex@example.com"
            ],
            "title": "Email"
          },
          "expires_in_days": {
            "anyOf": [
              {
                "maximum": 30.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              14
            ],
            "title": "Expires In Days"
          },
          "external_id": {
            "anyOf": [
              {
                "maxLength": 128,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your own id for the person (returned to your client only).",
            "examples": [
              "CRM-00042"
            ],
            "title": "External Id"
          },
          "first_name": {
            "anyOf": [
              {
                "maxLength": 60,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Used for the greeting only; never stored.",
            "examples": [
              "Alex"
            ],
            "title": "First Name"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": "en",
            "description": "One of Norvya's 17 app languages: en es fr de it zh ja pt ar hi ko ur id vi th ru fa.",
            "examples": [
              "es"
            ],
            "title": "Language"
          },
          "phone": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "E.164 (+15551234567). Norvya does NOT text it (see SMS / WhatsApp below): with no email the invitation is recorded with channel none and you deliver join_url yourself.",
            "examples": [
              "+15551234567"
            ],
            "title": "Phone"
          },
          "sharing_request": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 16,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Sections you will ask the person to share: analyses, photos, medical_history, family_history, medications, labs, biometrics, nutrition, skin_scans, longevity, sexual_health, sud, gender_care, infectious_disease, sogi, mental_health. Recorded only; the person chooses in the app.",
            "examples": [
              [
                "analyses",
                "biometrics"
              ]
            ],
            "title": "Sharing Request"
          }
        },
        "title": "InviteIn",
        "type": "object"
      },
      "InviteList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/InviteOut"
            },
            "title": "Items",
            "type": "array"
          },
          "limit": {
            "title": "Limit",
            "type": "integer"
          },
          "offset": {
            "title": "Offset",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "total",
          "offset",
          "limit",
          "items"
        ],
        "title": "InviteList",
        "type": "object"
      },
      "InviteOut": {
        "properties": {
          "channel": {
            "description": "email | none",
            "examples": [
              "email"
            ],
            "title": "Channel",
            "type": "string"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "invite_ref": {
            "examples": [
              "inv_Yc3l0bVhR2vXqk9d8Lw1rA"
            ],
            "title": "Invite Ref",
            "type": "string"
          },
          "joined_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Joined At"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "member_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Once the person joined and while they stay linked.",
            "examples": [
              "mr_3f9c1a0b7d2e4c6a8b1d0e2f"
            ],
            "title": "Member Ref"
          },
          "opened_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Opened At"
          },
          "revoked_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Revoked At"
          },
          "sent_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sent At"
          },
          "sharing_request": {
            "items": {
              "type": "string"
            },
            "title": "Sharing Request",
            "type": "array"
          },
          "simulated": {
            "description": "Sandbox: recorded, never emailed.",
            "title": "Simulated",
            "type": "boolean"
          },
          "status": {
            "description": "sent | not_sent (no email: you deliver join_url) | send_failed | opened (the person opened the join screen with it) | joined | expired | revoked",
            "examples": [
              "sent"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "invite_ref",
          "status",
          "channel",
          "simulated"
        ],
        "title": "InviteOut",
        "type": "object"
      },
      "ItemOutcome": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Why an item was rejected (stable machine code).",
            "examples": [
              "unit_unrecognised"
            ],
            "title": "Code"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "metrics": {
            "description": "What was stored (ledger codes), or the exercises.",
            "items": {
              "type": "string"
            },
            "title": "Metrics",
            "type": "array"
          },
          "status": {
            "description": "created | duplicate | rejected",
            "examples": [
              "created"
            ],
            "title": "Status",
            "type": "string"
          },
          "type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Type"
          }
        },
        "required": [
          "status"
        ],
        "title": "ItemOutcome",
        "type": "object"
      },
      "JoinCodeIn": {
        "properties": {
          "expires_in_days": {
            "anyOf": [
              {
                "maximum": 365.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              90
            ],
            "title": "Expires In Days"
          },
          "label": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "Front desk poster"
            ],
            "title": "Label"
          },
          "max_uses": {
            "anyOf": [
              {
                "maximum": 100000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              500
            ],
            "title": "Max Uses"
          }
        },
        "title": "JoinCodeIn",
        "type": "object"
      },
      "JoinCodeList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/JoinCodeOut"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "JoinCodeList",
        "type": "object"
      },
      "JoinCodeOut": {
        "properties": {
          "code": {
            "description": "Entered on the app's join screen like your clinic code.",
            "examples": [
              "JN-7KQ2MX9R"
            ],
            "title": "Code",
            "type": "string"
          },
          "code_ref": {
            "examples": [
              "jc_q1w2e3r4t5y6u7i8o9p0aa"
            ],
            "title": "Code Ref",
            "type": "string"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "join_url": {
            "examples": [
              "norvya://join?code=JN-7KQ2MX9R"
            ],
            "title": "Join Url",
            "type": "string"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "last_used_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used At"
          },
          "max_uses": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Uses"
          },
          "revoked_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Revoked At"
          },
          "simulated": {
            "description": "Sandbox: real people can never join a sandbox organisation; use simulate-join.",
            "title": "Simulated",
            "type": "boolean"
          },
          "status": {
            "description": "active | expired | used_up | revoked",
            "examples": [
              "active"
            ],
            "title": "Status",
            "type": "string"
          },
          "uses": {
            "title": "Uses",
            "type": "integer"
          }
        },
        "required": [
          "code_ref",
          "code",
          "join_url",
          "status",
          "uses",
          "simulated"
        ],
        "title": "JoinCodeOut",
        "type": "object"
      },
      "JoinLink": {
        "properties": {
          "decline_url": {
            "description": "Deliver it with the join link: a person who declines is never invited by you again.",
            "title": "Decline Url",
            "type": "string"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "invite_ref": {
            "title": "Invite Ref",
            "type": "string"
          },
          "join_url": {
            "title": "Join Url",
            "type": "string"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "row_number": {
            "title": "Row Number",
            "type": "integer"
          }
        },
        "required": [
          "row_number",
          "invite_ref",
          "join_url",
          "decline_url"
        ],
        "title": "JoinLink",
        "type": "object"
      },
      "JoinLinks": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/JoinLink"
            },
            "title": "Items",
            "type": "array"
          },
          "notice": {
            "title": "Notice",
            "type": "string"
          },
          "roster_ref": {
            "title": "Roster Ref",
            "type": "string"
          }
        },
        "required": [
          "roster_ref",
          "items",
          "notice"
        ],
        "title": "JoinLinks",
        "type": "object"
      },
      "JourneyIn": {
        "additionalProperties": false,
        "properties": {
          "destination_country": {
            "default": "US",
            "examples": [
              "US"
            ],
            "maxLength": 2,
            "minLength": 2,
            "title": "Destination Country",
            "type": "string"
          },
          "facility_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A partner hospital from GET /v1/travel/facilities, linked once the patient accepts.",
            "title": "Facility Ref"
          },
          "interpreter_required": {
            "default": false,
            "title": "Interpreter Required",
            "type": "boolean"
          },
          "member_ref": {
            "description": "A patient on your desk's active roster.",
            "examples": [
              "mr_3f9c1a0b7d2e4c6a8b1d0e2f"
            ],
            "title": "Member Ref",
            "type": "string"
          },
          "origin_country": {
            "description": "ISO 3166-1 alpha-2, where the patient lives.",
            "examples": [
              "AE"
            ],
            "maxLength": 2,
            "minLength": 2,
            "title": "Origin Country",
            "type": "string"
          },
          "planned_arrival": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Planned Arrival"
          },
          "primary_language": {
            "default": "en",
            "description": "The language the documents must be in.",
            "examples": [
              "ar"
            ],
            "maxLength": 8,
            "title": "Primary Language",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "What the patient travels for, plain words.",
            "title": "Reason"
          },
          "sponsor_name": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sponsor Name"
          },
          "sponsor_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "self | insurer | employer | government | embassy | charity",
            "examples": [
              "government"
            ],
            "title": "Sponsor Type"
          },
          "treating_facility": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Treating Facility"
          }
        },
        "required": [
          "member_ref",
          "origin_country"
        ],
        "title": "JourneyIn",
        "type": "object"
      },
      "KindReason": {
        "properties": {
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "reason"
        ],
        "title": "KindReason",
        "type": "object"
      },
      "LegIn": {
        "additionalProperties": false,
        "properties": {
          "arrive_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Arrive At"
          },
          "arrive_place": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "IAH"
            ],
            "title": "Arrive Place"
          },
          "arrive_tz": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Arrive Tz"
          },
          "booking_reference": {
            "anyOf": [
              {
                "maxLength": 20,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Booking Reference"
          },
          "carrier": {
            "anyOf": [
              {
                "maxLength": 80,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Carrier"
          },
          "depart_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Local wall clock at departure, YYYY-MM-DDTHH:MM.",
            "examples": [
              "2026-10-20T02:10"
            ],
            "title": "Depart At"
          },
          "depart_place": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "An IATA code or a place.",
            "examples": [
              "AUH"
            ],
            "title": "Depart Place"
          },
          "depart_tz": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "IANA zone of the departure end.",
            "examples": [
              "Asia/Dubai"
            ],
            "title": "Depart Tz"
          },
          "direction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "outbound | return | transfer (required to create)",
            "title": "Direction"
          },
          "escort_staff_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A staff_ref on the journey's care team on the day of departure (see GET .../team); \"\" clears it.",
            "title": "Escort Staff Ref"
          },
          "flight_number": {
            "anyOf": [
              {
                "maxLength": 12,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Flight Number"
          },
          "leg_order": {
            "anyOf": [
              {
                "maximum": 99.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Leg Order"
          },
          "medical_escort_required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Medical Escort Required"
          },
          "mode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "commercial | commercial_stretcher | air_ambulance | ground_ambulance | private_car | other (required to create)",
            "title": "Mode"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "other_needs": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Other Needs"
          },
          "oxygen": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Oxygen"
          },
          "oxygen_lpm": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Oxygen Lpm"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "planned | booked | flown (cancel has its own call)",
            "title": "Status"
          },
          "stretcher": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stretcher"
          },
          "wheelchair": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "none | WCHR | WCHS | WCHC (IATA)",
            "title": "Wheelchair"
          }
        },
        "title": "LegIn",
        "type": "object"
      },
      "LesionDetail": {
        "properties": {
          "images_available": {
            "default": false,
            "title": "Images Available",
            "type": "boolean"
          },
          "lesion": {
            "additionalProperties": true,
            "title": "Lesion",
            "type": "object"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "note": {
            "title": "Note",
            "type": "string"
          },
          "withheld_fields": {
            "items": {
              "type": "string"
            },
            "title": "Withheld Fields",
            "type": "array"
          }
        },
        "required": [
          "member_ref",
          "lesion",
          "withheld_fields",
          "note"
        ],
        "title": "LesionDetail",
        "type": "object"
      },
      "LesionList": {
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "images_available": {
            "default": false,
            "title": "Images Available",
            "type": "boolean"
          },
          "lesions": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Lesions",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "note": {
            "title": "Note",
            "type": "string"
          },
          "withheld_fields": {
            "description": "Never returned: the photograph, the classifier's label, probabilities and risk level, the ABCDE score, the attention flag and the patient's free text.",
            "items": {
              "type": "string"
            },
            "title": "Withheld Fields",
            "type": "array"
          }
        },
        "required": [
          "member_ref",
          "count",
          "lesions",
          "withheld_fields",
          "note"
        ],
        "title": "LesionList",
        "type": "object"
      },
      "LifeReport": {
        "additionalProperties": true,
        "description": "The engine's structured output, internal ids removed.",
        "properties": {},
        "title": "LifeReport",
        "type": "object"
      },
      "LoadIn": {
        "properties": {
          "unit": {
            "description": "kg | lb",
            "examples": [
              "kg"
            ],
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "examples": [
              100
            ],
            "title": "Value",
            "type": "number"
          }
        },
        "required": [
          "value",
          "unit"
        ],
        "title": "LoadIn",
        "type": "object"
      },
      "LungScreeningIn": {
        "properties": {
          "age": {
            "anyOf": [
              {
                "maximum": 120.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Age"
          },
          "current_smoker": {
            "default": false,
            "title": "Current Smoker",
            "type": "boolean"
          },
          "pack_years": {
            "anyOf": [
              {
                "maximum": 300.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pack Years"
          },
          "years_since_quit": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Years Since Quit"
          }
        },
        "title": "LungScreeningIn",
        "type": "object"
      },
      "MarAdministration": {
        "properties": {
          "note": {
            "anyOf": [
              {
                "maxLength": 180,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The reason, for held or refused.",
            "title": "Note"
          },
          "outcome": {
            "description": "given | held | refused",
            "title": "Outcome",
            "type": "string"
          },
          "schedule_ref": {
            "examples": [
              "rxs_8a1f0c3e5b7d9a2c4e6f8b0d"
            ],
            "title": "Schedule Ref",
            "type": "string"
          },
          "slot_time": {
            "description": "HH:MM, a dose time on today's schedule (the resident's local day).",
            "examples": [
              "08:00"
            ],
            "title": "Slot Time",
            "type": "string"
          }
        },
        "required": [
          "schedule_ref",
          "slot_time",
          "outcome"
        ],
        "title": "MarAdministration",
        "type": "object"
      },
      "MarPrn": {
        "properties": {
          "reason": {
            "maxLength": 200,
            "title": "Reason",
            "type": "string"
          },
          "schedule_ref": {
            "title": "Schedule Ref",
            "type": "string"
          }
        },
        "required": [
          "schedule_ref",
          "reason"
        ],
        "title": "MarPrn",
        "type": "object"
      },
      "MarPrnFollowup": {
        "properties": {
          "effect": {
            "description": "effective | partial | not_effective",
            "title": "Effect",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": [
          "effect"
        ],
        "title": "MarPrnFollowup",
        "type": "object"
      },
      "MatchBody": {
        "additionalProperties": false,
        "examples": [
          {
            "birth_date": "1968-05-01",
            "identifier": {
              "system": "urn:norvya:practice-mrn",
              "value": "MRN-004211"
            }
          }
        ],
        "properties": {
          "birth_date": {
            "description": "YYYY-MM-DD; must equal the date of birth Norvya holds.",
            "examples": [
              "1968-05-01"
            ],
            "title": "Birth Date",
            "type": "string"
          },
          "identifier": {
            "$ref": "#/components/schemas/MatchIdentifier"
          }
        },
        "required": [
          "identifier",
          "birth_date"
        ],
        "title": "MatchBody",
        "type": "object"
      },
      "MatchIdentifier": {
        "additionalProperties": false,
        "properties": {
          "system": {
            "description": "An identifier system your practice uses for its MRN in Norvya (its SMART / write-back registration), or urn:norvya:practice-mrn.",
            "examples": [
              "urn:norvya:practice-mrn"
            ],
            "maxLength": 300,
            "title": "System",
            "type": "string"
          },
          "value": {
            "examples": [
              "MRN-004211"
            ],
            "maxLength": 200,
            "title": "Value",
            "type": "string"
          }
        },
        "required": [
          "system",
          "value"
        ],
        "title": "MatchIdentifier",
        "type": "object"
      },
      "MatchResponse": {
        "properties": {
          "member_ref": {
            "examples": [
              "mr_3f9a0c1d2e4b5a6978c0d1e2"
            ],
            "title": "Member Ref",
            "type": "string"
          }
        },
        "required": [
          "member_ref"
        ],
        "title": "MatchResponse",
        "type": "object"
      },
      "MealPlanIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "entries": {
            "description": "{day (monday..sunday | every_day), slot, food_name, calories?, protein_g?, carbs_g?, fat_g?, ingredients?}",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "maxItems": 60,
            "title": "Entries",
            "type": "array"
          },
          "patient_note": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Patient Note"
          }
        },
        "required": [
          "clinician",
          "entries"
        ],
        "title": "MealPlanIn",
        "type": "object"
      },
      "MedIncidentCreate": {
        "properties": {
          "action_taken": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action Taken"
          },
          "description": {
            "maxLength": 4000,
            "title": "Description",
            "type": "string"
          },
          "incident_type": {
            "description": "missed_dose | wrong_dose | wrong_medication | wrong_time | wrong_resident | documentation | count_discrepancy | other",
            "title": "Incident Type",
            "type": "string"
          },
          "occurred_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "ISO time within the last 30 days (default now).",
            "title": "Occurred At"
          },
          "schedule_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Schedule Ref"
          },
          "severity": {
            "description": "no_harm | monitoring_needed | harm",
            "title": "Severity",
            "type": "string"
          }
        },
        "required": [
          "incident_type",
          "severity",
          "description"
        ],
        "title": "MedIncidentCreate",
        "type": "object"
      },
      "MemberItem": {
        "properties": {
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your own member id, when linked through a system sync.",
            "title": "External Id"
          },
          "linked_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Linked At"
          },
          "member_ref": {
            "description": "Opaque, stable reference for this member at YOUR organisation.",
            "title": "Member Ref",
            "type": "string"
          }
        },
        "required": [
          "member_ref"
        ],
        "title": "MemberItem",
        "type": "object"
      },
      "MembersResponse": {
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/MemberItem"
            },
            "title": "Members",
            "type": "array"
          }
        },
        "required": [
          "count",
          "members"
        ],
        "title": "MembersResponse",
        "type": "object"
      },
      "MessageIn": {
        "properties": {
          "body": {
            "description": "Plain text shown in the app only. Never put in the push, a text or an email.",
            "examples": [
              "Your class pass renews next week."
            ],
            "maxLength": 2000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          },
          "subject": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "Membership"
            ],
            "title": "Subject"
          },
          "thread_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reply into the conversation containing this message_ref; omit to start a new one.",
            "examples": [
              "msg_5e7a9c1b3d5f7a9c1e3a5b7d"
            ],
            "title": "Thread Ref"
          }
        },
        "required": [
          "body"
        ],
        "title": "MessageIn",
        "type": "object"
      },
      "MessageOut": {
        "properties": {
          "attachment_count": {
            "description": "Attachments are not served through the API in v1.",
            "title": "Attachment Count",
            "type": "integer"
          },
          "body": {
            "title": "Body",
            "type": "string"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "message_ref": {
            "examples": [
              "msg_5e7a9c1b3d5f7a9c1e3a5b7d"
            ],
            "title": "Message Ref",
            "type": "string"
          },
          "message_type": {
            "examples": [
              "message"
            ],
            "title": "Message Type",
            "type": "string"
          },
          "read_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "When the recipient opened it.",
            "title": "Read At"
          },
          "sender": {
            "description": "organisation | member",
            "examples": [
              "organisation"
            ],
            "title": "Sender",
            "type": "string"
          },
          "sent_via": {
            "description": "partner_api | norvya (your staff, in Norvya) | app (the member)",
            "examples": [
              "partner_api"
            ],
            "title": "Sent Via",
            "type": "string"
          },
          "subject": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject"
          },
          "thread_ref": {
            "title": "Thread Ref",
            "type": "string"
          }
        },
        "required": [
          "message_ref",
          "thread_ref",
          "sender",
          "sent_via",
          "message_type",
          "body",
          "attachment_count"
        ],
        "title": "MessageOut",
        "type": "object"
      },
      "MessageSent": {
        "properties": {
          "delivery": {
            "description": "notified (Norvya's generic notification went out through the member's own settings: push, or a text only if they opted in; quiet hours and caps apply) | simulated (sandbox or synthetic member: written, never sent)",
            "examples": [
              "notified"
            ],
            "title": "Delivery",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "message": {
            "$ref": "#/components/schemas/MessageOut"
          }
        },
        "required": [
          "member_ref",
          "message",
          "delivery"
        ],
        "title": "MessageSent",
        "type": "object"
      },
      "News2Response": {
        "properties": {
          "alert_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "high | medium | single_red | rising | unknown | null",
            "title": "Alert Level"
          },
          "attribution": {
            "title": "Attribution",
            "type": "string"
          },
          "attribution_url": {
            "title": "Attribution Url",
            "type": "string"
          },
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "eligibility": {
            "additionalProperties": true,
            "title": "Eligibility",
            "type": "object"
          },
          "episode_ref": {
            "title": "Episode Ref",
            "type": "string"
          },
          "latest": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest"
          },
          "max_age_minutes": {
            "title": "Max Age Minutes",
            "type": "integer"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "required": {
            "items": {
              "type": "string"
            },
            "title": "Required",
            "type": "array"
          },
          "rounds": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Rounds",
            "type": "array"
          },
          "trend": {
            "additionalProperties": true,
            "title": "Trend",
            "type": "object"
          }
        },
        "required": [
          "episode_ref",
          "member_ref",
          "eligibility",
          "trend",
          "rounds",
          "max_age_minutes",
          "required",
          "attribution",
          "attribution_url",
          "disclaimer"
        ],
        "title": "News2Response",
        "type": "object"
      },
      "NotAvailable": {
        "properties": {
          "item": {
            "title": "Item",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "item",
          "reason"
        ],
        "title": "NotAvailable",
        "type": "object"
      },
      "NotRequestableOut": {
        "properties": {
          "id": {
            "examples": [
              "swyc_bpsc"
            ],
            "title": "Id",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "reason_code": {
            "description": "feature_flow | parent_completed | licence_not_held | clinician_site_only | hub_registry | crisis_triage | triage_only",
            "title": "Reason Code",
            "type": "string"
          },
          "registry": {
            "description": "Where Norvya keeps it (instruments, licensed_instruments, or a specialty hub module).",
            "title": "Registry",
            "type": "string"
          },
          "served_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Served By"
          }
        },
        "required": [
          "id",
          "registry",
          "reason_code"
        ],
        "title": "NotRequestableOut",
        "type": "object"
      },
      "NoteCreated": {
        "properties": {
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "note": {
            "$ref": "#/components/schemas/NoteOut"
          }
        },
        "required": [
          "member_ref",
          "note"
        ],
        "title": "NoteCreated",
        "type": "object"
      },
      "NoteOut": {
        "properties": {
          "author": {
            "description": "partner_system (written through the API) | staff (written in Norvya).",
            "title": "Author",
            "type": "string"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "note_ref": {
            "title": "Note Ref",
            "type": "string"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "note_ref",
          "text",
          "author"
        ],
        "title": "NoteOut",
        "type": "object"
      },
      "NotesResponse": {
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "notes": {
            "items": {
              "$ref": "#/components/schemas/NoteOut"
            },
            "title": "Notes",
            "type": "array"
          }
        },
        "required": [
          "member_ref",
          "count",
          "notes"
        ],
        "title": "NotesResponse",
        "type": "object"
      },
      "NudgeBody": {
        "additionalProperties": false,
        "properties": {
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Why you are asking (recorded, never shown to the member): inactive | attendance_drop | check_in | win_back. No free text is accepted.",
            "enum": [
              "inactive",
              "attendance_drop",
              "check_in",
              "win_back"
            ],
            "title": "Reason"
          }
        },
        "title": "NudgeBody",
        "type": "object"
      },
      "NudgeResponse": {
        "properties": {
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Why not sent: recently_nudged (one per 14 days), no_device_token, not_sharing_activity, suppressed (the member's notification limits), send_failed, in_progress.",
            "title": "Reason"
          },
          "requested_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requested Reason"
          },
          "sent": {
            "title": "Sent",
            "type": "boolean"
          },
          "simulated": {
            "default": false,
            "description": "True only for sandbox credentials: the nudge was recorded (and counts for the 14-day dedup) but no push was sent.",
            "title": "Simulated",
            "type": "boolean"
          }
        },
        "required": [
          "member_ref",
          "sent"
        ],
        "title": "NudgeResponse",
        "type": "object"
      },
      "NursingStatusIn": {
        "additionalProperties": false,
        "properties": {
          "note": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "status": {
            "description": "A nursing status after the current one (paused / resume stay in Norvya). nursing_active needs a LOG (or an exception start) covering today.",
            "examples": [
              "nursing_active"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "NursingStatusIn",
        "type": "object"
      },
      "OAuthErrorResponse": {
        "properties": {
          "error": {
            "description": "RFC 6749 §5.2 code: invalid_request, invalid_client, unsupported_grant_type, invalid_scope, invalid_grant (an EMR vendor's practice_ref that is unknown, not yours or revoked: one answer).",
            "title": "Error",
            "type": "string"
          }
        },
        "required": [
          "error"
        ],
        "title": "OAuthErrorResponse",
        "type": "object"
      },
      "ObservationIn": {
        "properties": {
          "body_fat_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              21.4
            ],
            "title": "Body Fat Pct"
          },
          "body_water_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Body Water Pct"
          },
          "bone_mass": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Quantity"
              },
              {
                "type": "null"
              }
            ]
          },
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Vital: blood_pressure, heart_rate, resting_heart_rate, weight, height, body_temp, spo2, blood_glucose, respiratory_rate (gyms: blood_pressure, heart_rate, resting_heart_rate, weight, height).",
            "examples": [
              "blood_pressure"
            ],
            "title": "Code"
          },
          "collected_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Lab: ISO 8601 with a UTC offset.",
            "examples": [
              "2026-10-13T08:05:00-04:00"
            ],
            "title": "Collected At"
          },
          "device": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "InBody 570"
            ],
            "title": "Device"
          },
          "ecw_tbw": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Extracellular / total body water ratio.",
            "title": "Ecw Tbw"
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "ISO 8601 with a UTC offset (vitals, body composition).",
            "examples": [
              "2026-10-14T09:30:00-04:00"
            ],
            "title": "Effective At"
          },
          "external_id": {
            "description": "Your id for this item, unique per client: a retry with the same id and payload is a no-op.",
            "examples": [
              "VS-2026-10-14-0001"
            ],
            "maxLength": 128,
            "minLength": 1,
            "title": "External Id",
            "type": "string"
          },
          "interpretation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "normal | low | high | critical | abnormal",
            "title": "Interpretation"
          },
          "lab_name": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "Example Reference Laboratory"
            ],
            "title": "Lab Name"
          },
          "loinc": {
            "anyOf": [
              {
                "maxLength": 16,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "13457-7"
            ],
            "title": "Loinc"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "LDL"
            ],
            "title": "Name"
          },
          "reference_high": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reference High"
          },
          "reference_low": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reference Low"
          },
          "reference_text": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "<100 mg/dL"
            ],
            "title": "Reference Text"
          },
          "skeletal_muscle_mass": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Quantity"
              },
              {
                "type": "null"
              }
            ]
          },
          "smi": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Skeletal muscle index, kg/m2.",
            "title": "Smi"
          },
          "type": {
            "description": "vital | lab | body_composition",
            "examples": [
              "vital"
            ],
            "title": "Type",
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "maxLength": 32,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Required for weight, height, body_temp, blood_glucose and every registered lab; never assumed.",
            "examples": [
              "mmHg"
            ],
            "title": "Unit"
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              128
            ],
            "title": "Value"
          },
          "value_secondary": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Diastolic, for blood_pressure.",
            "examples": [
              82
            ],
            "title": "Value Secondary"
          },
          "visceral_fat": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Visceral fat level (device scale).",
            "examples": [
              9
            ],
            "title": "Visceral Fat"
          },
          "weight": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Quantity"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "external_id",
          "type"
        ],
        "title": "ObservationIn",
        "type": "object"
      },
      "ObservationsIn": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ObservationIn"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "ObservationsIn",
        "type": "object"
      },
      "OncCaseload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/OncCaseloadItem"
            },
            "title": "Items",
            "type": "array"
          },
          "side_effect_check_in": {
            "title": "Side Effect Check In",
            "type": "string"
          }
        },
        "required": [
          "items",
          "side_effect_check_in"
        ],
        "title": "OncCaseload",
        "type": "object"
      },
      "OncCaseloadItem": {
        "properties": {
          "episodes": {
            "items": {
              "$ref": "#/components/schemas/OncEpisodeBrief"
            },
            "title": "Episodes",
            "type": "array"
          },
          "follow_up_reminders": {
            "title": "Follow Up Reminders",
            "type": "boolean"
          },
          "latest_check": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/routers__partner_api_bh_onc__CheckOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "next_due": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Due"
          },
          "open_red_flags": {
            "title": "Open Red Flags",
            "type": "integer"
          },
          "plan": {
            "additionalProperties": true,
            "title": "Plan",
            "type": "object"
          },
          "worst_open_lane": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Worst Open Lane"
          }
        },
        "required": [
          "member_ref",
          "episodes",
          "plan",
          "open_red_flags",
          "follow_up_reminders"
        ],
        "title": "OncCaseloadItem",
        "type": "object"
      },
      "OncEpisode": {
        "properties": {
          "cancer_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancer Type"
          },
          "care_team_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Care Team Name"
          },
          "diagnosis_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Diagnosis Date"
          },
          "entered_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entered By"
          },
          "entered_by_your_practice": {
            "title": "Entered By Your Practice",
            "type": "boolean"
          },
          "episode_ref": {
            "examples": [
              "one_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Episode Ref",
            "type": "string"
          },
          "histology_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Histology Text"
          },
          "in_chemo_window": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "In Chemo Window"
          },
          "on_chemotherapy_now": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "On Chemotherapy Now"
          },
          "oncology_phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Oncology Phone"
          },
          "stage_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stage Text"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "treatment_completed_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Treatment Completed On"
          },
          "treatments": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Treatments",
            "type": "array"
          }
        },
        "required": [
          "episode_ref",
          "treatments",
          "entered_by_your_practice"
        ],
        "title": "OncEpisode",
        "type": "object"
      },
      "OncEpisodeBrief": {
        "properties": {
          "cancer_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancer Type"
          },
          "entered_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entered By"
          },
          "episode_ref": {
            "title": "Episode Ref",
            "type": "string"
          },
          "on_chemotherapy_now": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "On Chemotherapy Now"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          }
        },
        "required": [
          "episode_ref"
        ],
        "title": "OncEpisodeBrief",
        "type": "object"
      },
      "OutcomeIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "external_id": {
            "anyOf": [
              {
                "maxLength": 128,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Patient-reported only: your id for the request (idempotent).",
            "title": "External Id"
          },
          "instrument_id": {
            "description": "A clinician-rated measure (FOIS, Nine-Hole Peg Test) or a patient-reported PT measure (ODI, LEFS, QuickDASH, NDI) this deployment is licensed for.",
            "examples": [
              "fois"
            ],
            "title": "Instrument Id",
            "type": "string"
          },
          "timepoint": {
            "description": "baseline | interval | discharge",
            "title": "Timepoint",
            "type": "string"
          },
          "values": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "maxItems": 20,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Clinician-rated only: one value per item. Omit for a patient-reported measure (the patient answers it in Norvya).",
            "title": "Values"
          }
        },
        "required": [
          "clinician",
          "instrument_id",
          "timepoint"
        ],
        "title": "OutcomeIn",
        "type": "object"
      },
      "PackVerify": {
        "properties": {
          "checklist": {
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "All four must be true: changes_reviewed, packed_to_current_list, labels_checked, second_check_done.",
            "title": "Checklist",
            "type": "object"
          },
          "fill_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD (default today) when mark_filled.",
            "title": "Fill Date"
          },
          "mark_filled": {
            "default": false,
            "title": "Mark Filled",
            "type": "boolean"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": [
          "checklist"
        ],
        "title": "PackVerify",
        "type": "object"
      },
      "PanelImportOut": {
        "properties": {
          "blocking": {
            "description": "Codes that refuse a commit until fixed.",
            "items": {
              "type": "string"
            },
            "title": "Blocking",
            "type": "array"
          },
          "can_commit": {
            "default": false,
            "title": "Can Commit",
            "type": "boolean"
          },
          "changes": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Changes"
          },
          "committed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Committed At"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "data_quality": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Data Quality"
          },
          "discarded_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discarded At"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "file_bytes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "File Bytes"
          },
          "file_format": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "File Format"
          },
          "file_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "File Sha256"
          },
          "filename": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filename"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "patients_in_file": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Patients In File"
          },
          "progress": {
            "additionalProperties": true,
            "title": "Progress",
            "type": "object"
          },
          "records": {
            "default": 0,
            "title": "Records",
            "type": "integer"
          },
          "rejected": {
            "default": 0,
            "title": "Rejected",
            "type": "integer"
          },
          "result": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Result"
          },
          "status": {
            "description": "staged | committing | committed | failed | discarded",
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "additionalProperties": true,
            "description": "The dry run: counts per record type, patients new / already linked, rejections by reason with row positions (never values), ambiguous dates, unmapped tests, unit problems, possible duplicates.",
            "title": "Summary",
            "type": "object"
          }
        },
        "required": [
          "id",
          "status"
        ],
        "title": "PanelImportOut",
        "type": "object"
      },
      "PatchOut": {
        "properties": {
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "patch_test_ref": {
            "title": "Patch Test Ref",
            "type": "string"
          },
          "session": {
            "additionalProperties": true,
            "title": "Session",
            "type": "object"
          }
        },
        "required": [
          "member_ref",
          "patch_test_ref",
          "session"
        ],
        "title": "PatchOut",
        "type": "object"
      },
      "PatchReadIn": {
        "properties": {
          "clinician": {
            "title": "Clinician",
            "type": "string"
          },
          "grades": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "allergen -> grade key (GET /v1/derm/vocabulary patch_grades).",
            "title": "Grades",
            "type": "object"
          },
          "read_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Read At"
          },
          "timepoint": {
            "description": "48h | 96h | day7",
            "examples": [
              "48h"
            ],
            "title": "Timepoint",
            "type": "string"
          }
        },
        "required": [
          "clinician",
          "timepoint",
          "grades"
        ],
        "title": "PatchReadIn",
        "type": "object"
      },
      "PatchStartIn": {
        "properties": {
          "allergens": {
            "description": "Your own panel, substance by substance (Norvya ships no series).",
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Allergens",
            "type": "array"
          },
          "applied_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Applied At"
          },
          "clinician": {
            "title": "Clinician",
            "type": "string"
          },
          "panel_name": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Panel Name",
            "type": "string"
          }
        },
        "required": [
          "clinician",
          "panel_name",
          "allergens"
        ],
        "title": "PatchStartIn",
        "type": "object"
      },
      "PatientBehavioral": {
        "properties": {
          "cocm_episode_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cocm Episode Ref"
          },
          "cocm_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cocm Status"
          },
          "crisis": {
            "$ref": "#/components/schemas/Crisis"
          },
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "homework": {
            "items": {
              "$ref": "#/components/schemas/HomeworkOut"
            },
            "title": "Homework",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "not_available": {
            "items": {
              "$ref": "#/components/schemas/NotAvailable"
            },
            "title": "Not Available",
            "type": "array"
          },
          "scores": {
            "additionalProperties": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Scale"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": "Scores",
            "type": "object"
          },
          "therapy_episode": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TherapyEpisodeOut"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "member_ref",
          "scores",
          "crisis",
          "homework",
          "not_available",
          "disclaimer"
        ],
        "title": "PatientBehavioral",
        "type": "object"
      },
      "PatientOncology": {
        "properties": {
          "checks": {
            "items": {
              "$ref": "#/components/schemas/routers__partner_api_bh_onc__CheckOut"
            },
            "title": "Checks",
            "type": "array"
          },
          "episodes": {
            "items": {
              "$ref": "#/components/schemas/OncEpisode"
            },
            "title": "Episodes",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "open_imports": {
            "items": {
              "type": "string"
            },
            "title": "Open Imports",
            "type": "array"
          },
          "side_effect_check_in": {
            "title": "Side Effect Check In",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "episodes",
          "checks",
          "open_imports",
          "side_effect_check_in"
        ],
        "title": "PatientOncology",
        "type": "object"
      },
      "PhOnboardingStep": {
        "properties": {
          "mandatory": {
            "title": "Mandatory",
            "type": "boolean"
          },
          "status": {
            "examples": [
              "complete"
            ],
            "title": "Status",
            "type": "string"
          },
          "step": {
            "examples": [
              "agreement_signed"
            ],
            "title": "Step",
            "type": "string"
          }
        },
        "required": [
          "step",
          "status",
          "mandatory"
        ],
        "title": "PhOnboardingStep",
        "type": "object"
      },
      "PhaseIn": {
        "additionalProperties": false,
        "properties": {
          "note": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "on_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The day it happened (default today).",
            "title": "On Date"
          },
          "to_phase": {
            "description": "planned | arrived | in_treatment | discharged | repatriated | home_follow_up | closed (forward only)",
            "examples": [
              "arrived"
            ],
            "title": "To Phase",
            "type": "string"
          }
        },
        "required": [
          "to_phase"
        ],
        "title": "PhaseIn",
        "type": "object"
      },
      "Point": {
        "properties": {
          "band": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Band"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score"
          }
        },
        "title": "Point",
        "type": "object"
      },
      "PopExportAccepted": {
        "properties": {
          "export_id": {
            "examples": [
              "9f1c2b7e4a5d4c3b8e7f6a5b4c3d2e1f"
            ],
            "title": "Export Id",
            "type": "string"
          },
          "status": {
            "examples": [
              "accepted"
            ],
            "title": "Status",
            "type": "string"
          },
          "status_url": {
            "examples": [
              "/v1/population/exports/9f1c2b7e4a5d4c3b8e7f6a5b4c3d2e1f"
            ],
            "title": "Status Url",
            "type": "string"
          }
        },
        "required": [
          "export_id",
          "status",
          "status_url"
        ],
        "title": "PopExportAccepted",
        "type": "object"
      },
      "PopExportBody": {
        "additionalProperties": false,
        "examples": [
          {
            "deidentify": "safe_harbor",
            "since": "2026-01-01T00:00:00Z",
            "types": [
              "Patient",
              "Observation",
              "Condition"
            ]
          }
        ],
        "properties": {
          "deidentify": {
            "default": "none",
            "description": "none (identified; each patient's sharing choices with your practice apply) | safe_harbor (HIPAA Safe Harbor: random per-export patient ids, dates reduced to the year, three-digit ZIP, free text removed, no record numbers).",
            "enum": [
              "none",
              "safe_harbor"
            ],
            "title": "Deidentify",
            "type": "string"
          },
          "since": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Only resources on or after this date.",
            "title": "Since"
          },
          "types": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "FHIR resource types (default: all supported).",
            "title": "Types"
          }
        },
        "title": "PopExportBody",
        "type": "object"
      },
      "PopExportFile": {
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "type": {
            "examples": [
              "Observation"
            ],
            "title": "Type",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "type",
          "url",
          "count"
        ],
        "title": "PopExportFile",
        "type": "object"
      },
      "PopExportManifest": {
        "properties": {
          "deidentified": {
            "title": "Deidentified",
            "type": "boolean"
          },
          "error": {
            "items": {},
            "title": "Error",
            "type": "array"
          },
          "output": {
            "items": {
              "$ref": "#/components/schemas/PopExportFile"
            },
            "title": "Output",
            "type": "array"
          },
          "request": {
            "title": "Request",
            "type": "string"
          },
          "requiresAccessToken": {
            "default": true,
            "title": "Requiresaccesstoken",
            "type": "boolean"
          },
          "transactionTime": {
            "title": "Transactiontime",
            "type": "string"
          }
        },
        "required": [
          "transactionTime",
          "request",
          "output",
          "deidentified"
        ],
        "title": "PopExportManifest",
        "type": "object"
      },
      "PopExportStatus": {
        "properties": {
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "deidentify": {
            "title": "Deidentify",
            "type": "string"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "audit_unavailable | export_failed",
            "title": "Error"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "export_id": {
            "title": "Export Id",
            "type": "string"
          },
          "manifest": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PopExportManifest"
              },
              {
                "type": "null"
              }
            ],
            "description": "Present once completed (FHIR Bulk Data status-response shape)."
          },
          "progress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Progress"
          },
          "status": {
            "description": "accepted | in-progress | completed | error | cancelled",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "export_id",
          "status",
          "deidentify"
        ],
        "title": "PopExportStatus",
        "type": "object"
      },
      "PopGap": {
        "properties": {
          "action": {
            "description": "What would close it, e.g. record_bp, ask_to_share.",
            "examples": [
              "record_bp"
            ],
            "title": "Action",
            "type": "string"
          },
          "count": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "gap": {
            "description": "Gap code, e.g. no_bp_in_period, a1c_above_9, not_shared_labs.",
            "examples": [
              "no_bp_in_period"
            ],
            "title": "Gap",
            "type": "string"
          }
        },
        "required": [
          "gap",
          "action",
          "count"
        ],
        "title": "PopGap",
        "type": "object"
      },
      "PopGapMeasure": {
        "properties": {
          "by_gap": {
            "items": {
              "$ref": "#/components/schemas/PopGap"
            },
            "title": "By Gap",
            "type": "array"
          },
          "cms_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "CMS165v14"
            ],
            "title": "Cms Id"
          },
          "inverse": {
            "title": "Inverse",
            "type": "boolean"
          },
          "measure_id": {
            "examples": [
              "cms165_bp_control"
            ],
            "title": "Measure Id",
            "type": "string"
          },
          "open_gaps": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "measure_id",
          "title",
          "inverse",
          "open_gaps",
          "by_gap"
        ],
        "title": "PopGapMeasure",
        "type": "object"
      },
      "PopGaps": {
        "properties": {
          "certified": {
            "default": false,
            "title": "Certified",
            "type": "boolean"
          },
          "definition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "open_gaps is the measure's own /population/measures cell over the same period, withheld exactly when that one is.",
            "title": "Definition"
          },
          "measures": {
            "items": {
              "$ref": "#/components/schemas/PopGapMeasure"
            },
            "title": "Measures",
            "type": "array"
          },
          "period_end": {
            "title": "Period End",
            "type": "string"
          },
          "period_start": {
            "title": "Period Start",
            "type": "string"
          }
        },
        "required": [
          "period_start",
          "period_end",
          "measures"
        ],
        "title": "PopGaps",
        "type": "object"
      },
      "PopMeasure": {
        "properties": {
          "age_unknown": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "cms_id": {
            "examples": [
              "CMS165v14"
            ],
            "title": "Cms Id",
            "type": "string"
          },
          "denominator": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "denominator_exceptions": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/routers__partner_api_router__Cell"
              },
              {
                "type": "null"
              }
            ]
          },
          "denominator_exclusions": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "initial_population": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "inverse": {
            "description": "True when a LOWER rate is better (CMS122).",
            "title": "Inverse",
            "type": "boolean"
          },
          "measure_id": {
            "examples": [
              "cms165_bp_control"
            ],
            "title": "Measure Id",
            "type": "string"
          },
          "mips_quality_id": {
            "examples": [
              "236"
            ],
            "title": "Mips Quality Id",
            "type": "string"
          },
          "not_modelled": {
            "description": "What the calculation could not model, e.g. qualifying_encounter.",
            "items": {
              "type": "string"
            },
            "title": "Not Modelled",
            "type": "array"
          },
          "numerator": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "performance_denominator": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "performance_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Performance Rate"
          },
          "populations": {
            "items": {
              "$ref": "#/components/schemas/PopMeasurePopulation"
            },
            "title": "Populations",
            "type": "array"
          },
          "source_tiers": {
            "anyOf": [
              {
                "additionalProperties": {
                  "$ref": "#/components/schemas/routers__partner_api_router__Cell"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence tiers behind the numerator (clinical, device, self_report, ...); a patient can hold two.",
            "title": "Source Tiers"
          },
          "spec_version_valid": {
            "description": "False outside the 2026 period the identifiers are valid for.",
            "title": "Spec Version Valid",
            "type": "boolean"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "v14"
            ],
            "title": "Version"
          },
          "version_specific_id": {
            "title": "Version Specific Id",
            "type": "string"
          }
        },
        "required": [
          "measure_id",
          "cms_id",
          "version_specific_id",
          "mips_quality_id",
          "title",
          "inverse",
          "spec_version_valid",
          "initial_population",
          "denominator",
          "denominator_exclusions",
          "numerator",
          "performance_denominator",
          "suppressed",
          "age_unknown",
          "populations",
          "not_modelled"
        ],
        "title": "PopMeasure",
        "type": "object"
      },
      "PopMeasurePopulation": {
        "properties": {
          "age_unknown": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "denominator": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "denominator_exceptions": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/routers__partner_api_router__Cell"
              },
              {
                "type": "null"
              }
            ]
          },
          "denominator_exclusions": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "initial_population": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "numerator": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "performance_denominator": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "performance_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "numerator / performance_denominator, 0-1; null when either is withheld.",
            "title": "Performance Rate"
          },
          "population": {
            "title": "Population",
            "type": "string"
          },
          "source_tiers": {
            "anyOf": [
              {
                "additionalProperties": {
                  "$ref": "#/components/schemas/routers__partner_api_router__Cell"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Tiers"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          }
        },
        "required": [
          "population",
          "initial_population",
          "denominator",
          "denominator_exclusions",
          "numerator",
          "performance_denominator",
          "suppressed",
          "age_unknown"
        ],
        "title": "PopMeasurePopulation",
        "type": "object"
      },
      "PopPanel": {
        "properties": {
          "active_members": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell",
            "description": "Every live member: adults + children. Withheld whenever the adults or the children total is, so it never recovers either by subtraction."
          },
          "adults": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/routers__partner_api_router__Cell"
              },
              {
                "type": "null"
              }
            ],
            "description": "Adult members: the same total /population/social-needs shows."
          },
          "children": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/routers__partner_api_router__Cell"
              },
              {
                "type": "null"
              }
            ],
            "description": "Guardian-shared children: the same total /population/epsdt shows."
          }
        },
        "required": [
          "active_members"
        ],
        "title": "PopPanel",
        "type": "object"
      },
      "PopPrevRun": {
        "properties": {
          "finished_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          }
        },
        "required": [
          "id"
        ],
        "title": "PopPrevRun",
        "type": "object"
      },
      "PopRising": {
        "properties": {
          "compared_with_run": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PopPrevRun"
              },
              {
                "type": "null"
              }
            ],
            "description": "The previous completed run (null: none, so only projected threshold crossings count)."
          },
          "definition": {
            "title": "Definition",
            "type": "string"
          },
          "not_rising": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          },
          "rising": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell"
          }
        },
        "required": [
          "rising",
          "not_rising",
          "definition"
        ],
        "title": "PopRising",
        "type": "object"
      },
      "PopRunRef": {
        "properties": {
          "finished_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "2026-10-16T05:03:40Z"
            ],
            "title": "Finished At"
          },
          "id": {
            "examples": [
              311
            ],
            "title": "Id",
            "type": "integer"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "2026-10-16T05:00:02Z"
            ],
            "title": "Started At"
          },
          "status": {
            "examples": [
              "completed"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "status"
        ],
        "title": "PopRunRef",
        "type": "object"
      },
      "PopWorklist": {
        "properties": {
          "by_priority": {
            "additionalProperties": {
              "$ref": "#/components/schemas/routers__partner_api_router__Cell"
            },
            "description": "urgent | high | medium | low | no_findings: each patient once, by the most severe finding.",
            "title": "By Priority",
            "type": "object"
          },
          "cohort": {
            "$ref": "#/components/schemas/routers__partner_api_router__Cell",
            "description": "Adult members in that run who are still actively linked (children are reported by /population/epsdt only)."
          },
          "ranking": {
            "title": "Ranking",
            "type": "string"
          },
          "rising_risk": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PopRising"
              },
              {
                "type": "null"
              }
            ]
          },
          "run": {
            "$ref": "#/components/schemas/PopRunRef",
            "description": "The latest completed current-data worklist run these counts come from."
          }
        },
        "required": [
          "run",
          "cohort",
          "by_priority",
          "ranking"
        ],
        "title": "PopWorklist",
        "type": "object"
      },
      "PopulationMeasures": {
        "properties": {
          "certification_statement": {
            "title": "Certification Statement",
            "type": "string"
          },
          "certified": {
            "default": false,
            "description": "Always false.",
            "title": "Certified",
            "type": "boolean"
          },
          "encounter_basis": {
            "examples": [
              "active_panel_link"
            ],
            "title": "Encounter Basis",
            "type": "string"
          },
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "measures": {
            "items": {
              "$ref": "#/components/schemas/PopMeasure"
            },
            "title": "Measures",
            "type": "array"
          },
          "million_hearts": {
            "additionalProperties": true,
            "description": "CDC Million Hearts ABCS (aspirin, blood pressure, cholesterol, smoking) with every count a cell.",
            "title": "Million Hearts",
            "type": "object"
          },
          "min_cell": {
            "title": "Min Cell",
            "type": "integer"
          },
          "period_end": {
            "title": "Period End",
            "type": "string"
          },
          "period_start": {
            "title": "Period Start",
            "type": "string"
          },
          "qrda3_available": {
            "title": "Qrda3 Available",
            "type": "boolean"
          },
          "spec_source": {
            "title": "Spec Source",
            "type": "string"
          },
          "suppression": {
            "title": "Suppression",
            "type": "string"
          }
        },
        "required": [
          "generated_at",
          "period_start",
          "period_end",
          "min_cell",
          "suppression",
          "certification_statement",
          "encounter_basis",
          "spec_source",
          "qrda3_available",
          "measures",
          "million_hearts"
        ],
        "title": "PopulationMeasures",
        "type": "object"
      },
      "PopulationSummary": {
        "properties": {
          "care_gaps": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PopGaps"
              },
              {
                "type": "null"
              }
            ]
          },
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "min_cell": {
            "description": "Counts from 1 to min_cell - 1 are withheld (AGG_MIN_CELL, default 5).",
            "examples": [
              5
            ],
            "title": "Min Cell",
            "type": "integer"
          },
          "panel": {
            "$ref": "#/components/schemas/PopPanel"
          },
          "suppression": {
            "description": "The suppression rule, in words.",
            "title": "Suppression",
            "type": "string"
          },
          "worklist": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PopWorklist"
              },
              {
                "type": "null"
              }
            ],
            "description": "Null until a worklist run has completed."
          }
        },
        "required": [
          "generated_at",
          "min_cell",
          "suppression",
          "panel"
        ],
        "title": "PopulationSummary",
        "type": "object"
      },
      "PracticeItem": {
        "properties": {
          "granted_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "2026-10-15T14:02:11Z"
            ],
            "title": "Granted At"
          },
          "practice_name": {
            "examples": [
              "Riverside Family Medicine"
            ],
            "title": "Practice Name",
            "type": "string"
          },
          "practice_ref": {
            "description": "Ask for a token for this practice with practice=<practice_ref>.",
            "examples": [
              "pr_x2Wq9vT0bLr3sK8mN1aZ4g"
            ],
            "title": "Practice Ref",
            "type": "string"
          },
          "scopes": {
            "description": "What this practice approved for you.",
            "examples": [
              [
                "clinical.brief.read",
                "clinical.patient.match"
              ]
            ],
            "items": {
              "type": "string"
            },
            "title": "Scopes",
            "type": "array"
          }
        },
        "required": [
          "practice_ref",
          "practice_name",
          "scopes"
        ],
        "title": "PracticeItem",
        "type": "object"
      },
      "PracticesResponse": {
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "practices": {
            "items": {
              "$ref": "#/components/schemas/PracticeItem"
            },
            "title": "Practices",
            "type": "array"
          },
          "vendor_id": {
            "examples": [
              "pv_Hk2m9QzR4tYv"
            ],
            "title": "Vendor Id",
            "type": "string"
          }
        },
        "required": [
          "vendor_id",
          "count",
          "practices"
        ],
        "title": "PracticesResponse",
        "type": "object"
      },
      "Progress": {
        "properties": {
          "asked_in_period": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Asked In Period"
          },
          "done_in_period": {
            "title": "Done In Period",
            "type": "integer"
          },
          "done_total": {
            "title": "Done Total",
            "type": "integer"
          },
          "last_done_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Done At"
          },
          "period_start": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Period Start"
          }
        },
        "required": [
          "done_in_period",
          "done_total"
        ],
        "title": "Progress",
        "type": "object"
      },
      "ProviderIn": {
        "properties": {
          "label": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A free label when the provider is not in Norvya.",
            "examples": [
              "Dr. Ana Ruiz"
            ],
            "title": "Label"
          },
          "staff_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A staff_ref from GET /v1/scheduling/settings (a Norvya clinician of your practice).",
            "examples": [
              "stf_1a2b3c4d5e6f"
            ],
            "title": "Staff Ref"
          }
        },
        "title": "ProviderIn",
        "type": "object"
      },
      "ProviderOut": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role"
          },
          "staff_ref": {
            "title": "Staff Ref",
            "type": "string"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "required": [
          "staff_ref",
          "name"
        ],
        "title": "ProviderOut",
        "type": "object"
      },
      "Quantity": {
        "properties": {
          "unit": {
            "description": "kg | lb",
            "examples": [
              "kg"
            ],
            "maxLength": 16,
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "examples": [
              82.4
            ],
            "title": "Value",
            "type": "number"
          }
        },
        "required": [
          "value",
          "unit"
        ],
        "title": "Quantity",
        "type": "object"
      },
      "QuoteIn": {
        "additionalProperties": false,
        "properties": {
          "payload": {
            "additionalProperties": true,
            "description": "The Good Faith Estimate contents, as the desk's quote form: convening_npi, convening_tin, convening_location, convening_state, diagnosis_codes, lines[{description, service_code, code_type, quantity, expected_charge}], note. 422 required_contents_missing lists what is missing.",
            "title": "Payload",
            "type": "object"
          },
          "primary_service": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Needed for the first quote.",
            "title": "Primary Service"
          },
          "recipient_dob": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default: the linked patient's date of birth.",
            "title": "Recipient Dob"
          }
        },
        "required": [
          "payload"
        ],
        "title": "QuoteIn",
        "type": "object"
      },
      "RatingIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who assigned it (GET /v1/panel/clinicians).",
            "title": "Clinician",
            "type": "string"
          },
          "instrument_id": {
            "examples": [
              "fois"
            ],
            "title": "Instrument Id",
            "type": "string"
          },
          "values": {
            "description": "One value per item, in item order (GET /v1/instruments clinician_rated[].items).",
            "examples": [
              [
                5
              ]
            ],
            "items": {
              "type": "number"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Values",
            "type": "array"
          }
        },
        "required": [
          "instrument_id",
          "values",
          "clinician"
        ],
        "title": "RatingIn",
        "type": "object"
      },
      "RatingOut": {
        "properties": {
          "clinician": {
            "title": "Clinician",
            "type": "string"
          },
          "instrument_id": {
            "title": "Instrument Id",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "recorded_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recorded At"
          },
          "response_ref": {
            "title": "Response Ref",
            "type": "string"
          },
          "score": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score"
          },
          "version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version"
          }
        },
        "required": [
          "member_ref",
          "response_ref",
          "instrument_id",
          "clinician"
        ],
        "title": "RatingOut",
        "type": "object"
      },
      "RecheckList": {
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Items",
            "type": "array"
          },
          "members_not_sharing": {
            "description": "Active members whose lesions you cannot see (skin scans not shared).",
            "title": "Members Not Sharing",
            "type": "integer"
          },
          "method": {
            "title": "Method",
            "type": "string"
          }
        },
        "required": [
          "items",
          "count",
          "members_not_sharing",
          "method"
        ],
        "title": "RecheckList",
        "type": "object"
      },
      "RecordConnection": {
        "properties": {
          "connected_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Connected At"
          },
          "environment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "production"
            ],
            "title": "Environment"
          },
          "has_summary": {
            "default": false,
            "title": "Has Summary",
            "type": "boolean"
          },
          "last_sync_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Sync At"
          },
          "provider": {
            "description": "medicare_blue_button | va_lighthouse",
            "examples": [
              "medicare_blue_button"
            ],
            "title": "Provider",
            "type": "string"
          },
          "status": {
            "description": "connected | pending | error | disconnected | not_connected",
            "examples": [
              "connected"
            ],
            "title": "Status",
            "type": "string"
          },
          "synthetic": {
            "default": false,
            "title": "Synthetic",
            "type": "boolean"
          }
        },
        "required": [
          "provider",
          "status"
        ],
        "title": "RecordConnection",
        "type": "object"
      },
      "ReferralIn": {
        "additionalProperties": false,
        "properties": {
          "care_country": {
            "description": "US | ES | GB",
            "examples": [
              "GB"
            ],
            "title": "Care Country",
            "type": "string"
          },
          "care_state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "US state (required for US).",
            "examples": [
              "FL"
            ],
            "title": "Care State"
          },
          "date_of_birth": {
            "format": "date",
            "title": "Date Of Birth",
            "type": "string"
          },
          "diagnosis_summary": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Diagnosis Summary"
          },
          "email": {
            "anyOf": [
              {
                "maxLength": 254,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Held sealed for the patient's later claim of the account; nothing is sent. Ignored in a sandbox.",
            "title": "Email"
          },
          "full_name": {
            "maxLength": 120,
            "title": "Full Name",
            "type": "string"
          },
          "language": {
            "anyOf": [
              {
                "maxLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": "en",
            "title": "Language"
          },
          "origin_country": {
            "anyOf": [
              {
                "maxLength": 2,
                "minLength": 2,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "AE"
            ],
            "title": "Origin Country"
          },
          "phone": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "As email.",
            "title": "Phone"
          },
          "received_on": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Received On"
          },
          "sex": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "female | male | other | unknown",
            "title": "Sex"
          },
          "sponsor_name": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sponsor Name"
          },
          "sponsor_reference": {
            "description": "The sponsor's PRN (unique per desk).",
            "examples": [
              "IPC-26-1005"
            ],
            "maxLength": 64,
            "title": "Sponsor Reference",
            "type": "string"
          }
        },
        "required": [
          "sponsor_reference",
          "full_name",
          "date_of_birth",
          "care_country"
        ],
        "title": "ReferralIn",
        "type": "object"
      },
      "ReferralList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ReferralOut"
            },
            "title": "Items",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "items"
        ],
        "title": "ReferralList",
        "type": "object"
      },
      "ReferralOut": {
        "properties": {
          "allowed_statuses": {
            "items": {
              "type": "string"
            },
            "title": "Allowed Statuses",
            "type": "array"
          },
          "appointment_completed_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Appointment Completed Date"
          },
          "appointment_scheduled_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Appointment Scheduled Date"
          },
          "closed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closed At"
          },
          "completion_recorded": {
            "title": "Completion Recorded",
            "type": "boolean"
          },
          "completion_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completion Source"
          },
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "flags": {
            "description": "Overdue clocks: key, days, threshold.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Flags",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "open": {
            "title": "Open",
            "type": "boolean"
          },
          "origin": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin"
          },
          "possible_completion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence awaiting a person's review (kind), never a completion.",
            "title": "Possible Completion"
          },
          "referral_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Referral Reason"
          },
          "referral_ref": {
            "title": "Referral Ref",
            "type": "string"
          },
          "referring_provider_notified": {
            "title": "Referring Provider Notified",
            "type": "boolean"
          },
          "report_received": {
            "title": "Report Received",
            "type": "boolean"
          },
          "report_received_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Received At"
          },
          "report_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Source"
          },
          "sent_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sent At"
          },
          "specialist_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Specialist Name"
          },
          "specialty": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Specialty"
          },
          "stage": {
            "description": "sent | scheduled | seen | report_received | closed",
            "title": "Stage",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "urgency_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Urgency Level"
          }
        },
        "required": [
          "referral_ref",
          "member_ref",
          "status",
          "stage",
          "open",
          "allowed_statuses",
          "completion_recorded",
          "report_received",
          "referring_provider_notified",
          "disclaimer"
        ],
        "title": "ReferralOut",
        "type": "object"
      },
      "ReferralStatusIn": {
        "properties": {
          "document_ref": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "... your document id instead.",
            "title": "Document Ref"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "occurred_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD: the appointment / visit / report date (required for scheduled and seen).",
            "examples": [
              "2026-11-02"
            ],
            "title": "Occurred On"
          },
          "report": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "report_received: the report text, or ...",
            "title": "Report"
          },
          "report_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "report_received: direct | fax | portal | mail | phone | in_person | patient_reported | upload",
            "title": "Report Source"
          },
          "status": {
            "description": "accepted | scheduled | appointment_scheduled | seen | no_show | report_received | completed | declined | cancelled | unreachable | closed_unmet | pending",
            "examples": [
              "scheduled"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "ReferralStatusIn",
        "type": "object"
      },
      "RemindOut": {
        "properties": {
          "max_reminders_per_row": {
            "title": "Max Reminders Per Row",
            "type": "integer"
          },
          "next_reminder_after": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Reminder After"
          },
          "queued_for_reminder": {
            "title": "Queued For Reminder",
            "type": "integer"
          },
          "roster_ref": {
            "title": "Roster Ref",
            "type": "string"
          },
          "skipped": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Skipped",
            "type": "object"
          }
        },
        "required": [
          "roster_ref",
          "queued_for_reminder",
          "skipped",
          "max_reminders_per_row"
        ],
        "title": "RemindOut",
        "type": "object"
      },
      "ResidentAdmit": {
        "properties": {
          "attested_by_staff_ref": {
            "description": "The staff member who attests (GET /v1/care-sites/{site_ref}/attesting-staff).",
            "title": "Attested By Staff Ref",
            "type": "string"
          },
          "consent_attested": {
            "description": "Must be true: the named staff member attests that consent on this basis is on file.",
            "title": "Consent Attested",
            "type": "boolean"
          },
          "consent_basis": {
            "description": "self | guardian | facility_policy (the facility's admission agreement)",
            "title": "Consent Basis",
            "type": "string"
          },
          "date_of_birth": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD (a resident without a login).",
            "title": "Date Of Birth"
          },
          "full_name": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A resident without a login: their name.",
            "title": "Full Name"
          },
          "member_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "An existing patient of your organisation (at a pharmacy's site they must share medicines with you). Omit to admit a resident without a login.",
            "title": "Member Ref"
          },
          "resident_id": {
            "anyOf": [
              {
                "maxLength": 60,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your own ID for the resident (required without member_ref). One person per ID.",
            "title": "Resident Id"
          },
          "room_label": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Room Label"
          },
          "stay_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Nursing home sites only: short_stay (post-acute) | long_stay. 422 not_a_nursing_home at any other site type; 422 invalid_stay_type.",
            "title": "Stay Type"
          },
          "wing": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wing"
          }
        },
        "required": [
          "consent_basis",
          "consent_attested",
          "attested_by_staff_ref"
        ],
        "title": "ResidentAdmit",
        "type": "object"
      },
      "RestrictionsIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "precautions": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "rehab_episodes precaution keys (GET .../episodes catalog.precautions).",
            "title": "Precautions"
          },
          "weight_bearing": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "non | toe_touch | partial | as_tolerated | full | na",
            "title": "Weight Bearing"
          }
        },
        "required": [
          "clinician"
        ],
        "title": "RestrictionsIn",
        "type": "object"
      },
      "ResultList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ResultOut"
            },
            "title": "Items",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "status",
          "items"
        ],
        "title": "ResultList",
        "type": "object"
      },
      "ResultOut": {
        "properties": {
          "acknowledged": {
            "title": "Acknowledged",
            "type": "boolean"
          },
          "acknowledged_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Acknowledged At"
          },
          "action_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action At"
          },
          "action_link_kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action Link Kind"
          },
          "action_taken": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action Taken"
          },
          "arrived_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Arrived At"
          },
          "clocks": {
            "additionalProperties": true,
            "title": "Clocks",
            "type": "object"
          },
          "closed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closed At"
          },
          "escalated": {
            "title": "Escalated",
            "type": "boolean"
          },
          "flag": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Flag"
          },
          "flag_origin": {
            "description": "source_reported | norvya_reference_range | none",
            "title": "Flag Origin",
            "type": "string"
          },
          "informed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Informed At"
          },
          "informed_method": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Informed Method"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "patient_informed": {
            "title": "Patient Informed",
            "type": "boolean"
          },
          "result_ref": {
            "title": "Result Ref",
            "type": "string"
          },
          "resulted_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resulted On"
          },
          "source_kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Kind"
          },
          "statement_code": {
            "title": "Statement Code",
            "type": "string"
          },
          "status": {
            "description": "unacknowledged | acknowledged | closed",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "result_ref",
          "member_ref",
          "status",
          "acknowledged",
          "patient_informed",
          "escalated",
          "flag_origin",
          "statement_code"
        ],
        "title": "ResultOut",
        "type": "object"
      },
      "RetentionResponse": {
        "properties": {
          "active_30d": {
            "$ref": "#/components/schemas/routers__partner_api_fitness_hospital__Cell"
          },
          "active_7d": {
            "$ref": "#/components/schemas/routers__partner_api_fitness_hospital__Cell"
          },
          "avg_streak_days": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avg Streak Days"
          },
          "baseline_retention_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "The baseline your organisation entered, as a fraction.",
            "title": "Baseline Retention Rate"
          },
          "cohort": {
            "$ref": "#/components/schemas/routers__partner_api_fitness_hospital__Cell",
            "description": "Members who share activity with you (the analytics cohort)."
          },
          "definition": {
            "title": "Definition",
            "type": "string"
          },
          "engagement_rate_30d": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Engagement Rate 30D"
          },
          "enrolled": {
            "$ref": "#/components/schemas/routers__partner_api_fitness_hospital__Cell"
          },
          "low_confidence": {
            "title": "Low Confidence",
            "type": "boolean"
          },
          "min_cell": {
            "title": "Min Cell",
            "type": "integer"
          },
          "not_sharing": {
            "$ref": "#/components/schemas/routers__partner_api_fitness_hospital__Cell"
          },
          "retention_curve": {
            "additionalProperties": true,
            "description": "week_4 / week_8 / week_12: eligible, retained, rate.",
            "title": "Retention Curve",
            "type": "object"
          },
          "suppression_rule": {
            "title": "Suppression Rule",
            "type": "string"
          },
          "vs_baseline": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vs Baseline"
          },
          "weekly_active_trend": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Weekly Active Trend",
            "type": "array"
          }
        },
        "required": [
          "min_cell",
          "enrolled",
          "cohort",
          "not_sharing",
          "active_7d",
          "active_30d",
          "weekly_active_trend",
          "retention_curve",
          "low_confidence",
          "definition",
          "suppression_rule"
        ],
        "title": "RetentionResponse",
        "type": "object"
      },
      "RetractResponse": {
        "properties": {
          "already_retracted": {
            "title": "Already Retracted",
            "type": "boolean"
          },
          "external_id": {
            "title": "External Id",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "rows_removed": {
            "title": "Rows Removed",
            "type": "integer"
          },
          "status": {
            "examples": [
              "retracted"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "external_id",
          "status",
          "already_retracted",
          "rows_removed"
        ],
        "title": "RetractResponse",
        "type": "object"
      },
      "ReviewComplete": {
        "properties": {
          "summary": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          }
        },
        "title": "ReviewComplete",
        "type": "object"
      },
      "ReviewRecommendation": {
        "properties": {
          "description": {
            "maxLength": 500,
            "title": "Description",
            "type": "string"
          },
          "finding_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A finding of this review the recommendation addresses.",
            "title": "Finding Key"
          },
          "kind": {
            "description": "discrepancy_resolved | prescriber_contacted | dose_change_recommended | therapy_change_recommended | education | adherence_packaging | refill_sync | prior_authorization | cost_saving | other",
            "title": "Kind",
            "type": "string"
          },
          "prescriber_response": {
            "default": "pending",
            "description": "pending | accepted | declined | not_applicable",
            "title": "Prescriber Response",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "description"
        ],
        "title": "ReviewRecommendation",
        "type": "object"
      },
      "RiskAction": {
        "properties": {
          "based_on": {
            "description": "Input categories, never values: club_visits, machine_workouts, body_composition, weight_loss_program, wearable, food_log, conditions, medications, home_bp, labs, glucose, lifestyle.",
            "items": {
              "type": "string"
            },
            "title": "Based On",
            "type": "array"
          },
          "severity": {
            "description": "stop_and_check | high | caution | medium | low | info",
            "title": "Severity",
            "type": "string"
          },
          "title": {
            "description": "Gym-safe wording, e.g. 'Reach out this week'.",
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title",
          "severity"
        ],
        "title": "RiskAction",
        "type": "object"
      },
      "RiskChurn": {
        "properties": {
          "driver": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Plain words, e.g. 'No club visit for 18 days'.",
            "title": "Driver"
          },
          "level": {
            "description": "high | medium | low",
            "title": "Level",
            "type": "string"
          },
          "score": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "0-100, transparent: recency + trend + low activity.",
            "title": "Score"
          }
        },
        "required": [
          "level"
        ],
        "title": "RiskChurn",
        "type": "object"
      },
      "RiskFlag": {
        "properties": {
          "key": {
            "description": "losing_muscle | weight_loss_no_strength | plateaued | inactive",
            "title": "Key",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          }
        },
        "required": [
          "key",
          "label"
        ],
        "title": "RiskFlag",
        "type": "object"
      },
      "RosterDryRun": {
        "properties": {
          "already_members": {
            "default": 0,
            "description": "Rows that point at exactly one of your active members (your external_id, an address you invited before that joined, or the MBI / plan member id on their coverage). Never matched on name or birth date.",
            "title": "Already Members",
            "type": "integer"
          },
          "blocking": {
            "items": {
              "type": "string"
            },
            "title": "Blocking",
            "type": "array"
          },
          "can_commit": {
            "default": false,
            "title": "Can Commit",
            "type": "boolean"
          },
          "columns_ignored": {
            "items": {
              "type": "string"
            },
            "title": "Columns Ignored",
            "type": "array"
          },
          "columns_used": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Canonical field -> your header.",
            "title": "Columns Used",
            "type": "object"
          },
          "contacts_stored": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "sealed_until_delivered: addresses are kept encrypted only while an invitation or reminder is still to be sent, then purged; otherwise only as keyed hashes.",
            "title": "Contacts Stored"
          },
          "daily_invite_cap": {
            "default": 0,
            "title": "Daily Invite Cap",
            "type": "integer"
          },
          "duplicates": {
            "default": 0,
            "title": "Duplicates",
            "type": "integer"
          },
          "email_rows": {
            "default": 0,
            "title": "Email Rows",
            "type": "integer"
          },
          "errors_by_code": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Errors By Code",
            "type": "object"
          },
          "estimated_days": {
            "default": 0,
            "description": "UTC days the daily cap needs to send every invitation.",
            "title": "Estimated Days",
            "type": "integer"
          },
          "invalid": {
            "default": 0,
            "title": "Invalid",
            "type": "integer"
          },
          "invalid_contacts": {
            "default": 0,
            "title": "Invalid Contacts",
            "type": "integer"
          },
          "invites_left_today": {
            "default": 0,
            "title": "Invites Left Today",
            "type": "integer"
          },
          "language_defaulted": {
            "default": 0,
            "title": "Language Defaulted",
            "type": "integer"
          },
          "mbi_column": {
            "default": false,
            "title": "Mbi Column",
            "type": "boolean"
          },
          "no_contact": {
            "default": 0,
            "title": "No Contact",
            "type": "integer"
          },
          "not_eligible": {
            "default": 0,
            "title": "Not Eligible",
            "type": "integer"
          },
          "open_invites_reused": {
            "default": 0,
            "description": "Rows whose address already has an open invitation: it is attached, no second email.",
            "title": "Open Invites Reused",
            "type": "integer"
          },
          "opted_out": {
            "default": 0,
            "description": "The person declined an earlier invitation of yours: never invited again.",
            "title": "Opted Out",
            "type": "integer"
          },
          "phone_only_rows": {
            "default": 0,
            "description": "Never texted by Norvya: collect their links from join-links.",
            "title": "Phone Only Rows",
            "type": "integer"
          },
          "raw_identifiers_stored": {
            "default": false,
            "description": "Always false: MBIs / plan member ids are fingerprinted, birth dates and last names dropped.",
            "title": "Raw Identifiers Stored",
            "type": "boolean"
          },
          "rejections": {
            "description": "The first 200; all are counted.",
            "items": {
              "$ref": "#/components/schemas/RosterRejection"
            },
            "title": "Rejections",
            "type": "array"
          },
          "rows_read": {
            "default": 0,
            "title": "Rows Read",
            "type": "integer"
          },
          "source_format": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "csv | ndjson | eligibility (an MBI column and no contact columns: parsed by Norvya's eligibility parser; nobody to email, matched and reported only)",
            "title": "Source Format"
          },
          "to_invite": {
            "default": 0,
            "title": "To Invite",
            "type": "integer"
          }
        },
        "title": "RosterDryRun",
        "type": "object"
      },
      "RosterItem": {
        "properties": {
          "churn": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RiskChurn"
              },
              {
                "type": "null"
              }
            ],
            "description": "Null when the member does not share activity with you."
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "flags": {
            "items": {
              "$ref": "#/components/schemas/RiskFlag"
            },
            "title": "Flags",
            "type": "array"
          },
          "last_active_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Null when the member does not share activity.",
            "title": "Last Active Date"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "priority_action": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RiskAction"
              },
              {
                "type": "null"
              }
            ],
            "description": "The one thing to do first (GET .../guidance for the full list)."
          },
          "rank": {
            "description": "1 = needs attention first (within your filters).",
            "title": "Rank",
            "type": "integer"
          }
        },
        "required": [
          "member_ref",
          "rank"
        ],
        "title": "RosterItem",
        "type": "object"
      },
      "RosterList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/RosterOut"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "RosterList",
        "type": "object"
      },
      "RosterOut": {
        "properties": {
          "commit_started_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Commit Started At"
          },
          "committed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Committed At"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "discarded_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discarded At"
          },
          "dry_run": {
            "$ref": "#/components/schemas/RosterDryRun"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "expires_in_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires In Days"
          },
          "file_bytes": {
            "default": 0,
            "title": "File Bytes",
            "type": "integer"
          },
          "file_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "File Sha256"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "last_reminded_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Reminded At"
          },
          "reminders_sent": {
            "default": 0,
            "title": "Reminders Sent",
            "type": "integer"
          },
          "result": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              {
                "deduplicated": 4,
                "invited": 180,
                "opted_out": 1,
                "queued": 20,
                "refused": 0,
                "reminded": 0,
                "waiting_for_daily_cap": true
              }
            ],
            "title": "Result"
          },
          "roster_ref": {
            "examples": [
              "ros_3f9c1a0b7d2e4c6a8b1d0e2f"
            ],
            "title": "Roster Ref",
            "type": "string"
          },
          "sharing_request": {
            "items": {
              "type": "string"
            },
            "title": "Sharing Request",
            "type": "array"
          },
          "simulated": {
            "default": false,
            "title": "Simulated",
            "type": "boolean"
          },
          "source_format": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Format"
          },
          "status": {
            "description": "staged | committing | inviting (rows queued behind the daily cap) | invited | discarded | failed",
            "examples": [
              "staged"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "roster_ref",
          "status",
          "dry_run"
        ],
        "title": "RosterOut",
        "type": "object"
      },
      "RosterRejection": {
        "properties": {
          "code": {
            "description": "email_invalid | phone_invalid | dob_invalid | dob_in_future | under_minimum_age | mbi_malformed | name_too_long | external_id_too_long | cohort_too_long | invalid_json | duplicate_row | not_eligible_today | no_contact",
            "examples": [
              "email_invalid"
            ],
            "title": "Code",
            "type": "string"
          },
          "duplicate_of": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duplicate Of"
          },
          "row": {
            "description": "1-based line number (CSV: the header is line 1).",
            "examples": [
              17
            ],
            "title": "Row",
            "type": "integer"
          }
        },
        "required": [
          "row",
          "code"
        ],
        "title": "RosterRejection",
        "type": "object"
      },
      "RosterResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/RosterItem"
            },
            "title": "Items",
            "type": "array"
          },
          "limit": {
            "title": "Limit",
            "type": "integer"
          },
          "offset": {
            "title": "Offset",
            "type": "integer"
          },
          "ranking": {
            "description": "How rows are ordered.",
            "title": "Ranking",
            "type": "string"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "total",
          "offset",
          "limit",
          "ranking",
          "items"
        ],
        "title": "RosterResponse",
        "type": "object"
      },
      "RoundCheck": {
        "properties": {
          "note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "outcome": {
            "description": "seen_ok | asleep | assisted | not_in_room | declined | concern (concern needs a note)",
            "title": "Outcome",
            "type": "string"
          },
          "slot_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "ISO time of the slot (default: the latest due slot).",
            "title": "Slot At"
          }
        },
        "required": [
          "outcome"
        ],
        "title": "RoundCheck",
        "type": "object"
      },
      "SafetyIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "items": {
            "description": "Checklist item keys to recommend (GET .../home-safety groups); replaces the list.",
            "items": {
              "type": "string"
            },
            "maxItems": 60,
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "clinician",
          "items"
        ],
        "title": "SafetyIn",
        "type": "object"
      },
      "Scale": {
        "properties": {
          "baseline": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Point"
              },
              {
                "type": "null"
              }
            ]
          },
          "change": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Change"
          },
          "change_pct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Change Pct"
          },
          "latest": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Point"
              },
              {
                "type": "null"
              }
            ]
          },
          "remission": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "PHQ-9 below 5 (CMS159); PHQ-9 only.",
            "title": "Remission"
          },
          "response": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "At least a 50% reduction from baseline (AIMS Center).",
            "title": "Response"
          },
          "scale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "phq9"
            ],
            "title": "Scale"
          },
          "target": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target"
          },
          "target_met": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Met"
          },
          "target_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "cms159 | practice",
            "title": "Target Source"
          },
          "trend": {
            "default": [],
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Point"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": "Trend",
            "type": "array"
          }
        },
        "title": "Scale",
        "type": "object"
      },
      "SchedulingSettings": {
        "properties": {
          "norvya_reminders_for_partner_appointments": {
            "description": "false (default): Norvya sends no reminders for appointments your system sent, since your system reminds. Appointments booked in Norvya are always reminded.",
            "title": "Norvya Reminders For Partner Appointments",
            "type": "boolean"
          },
          "past_booked_window_hours": {
            "title": "Past Booked Window Hours",
            "type": "integer"
          },
          "practice_zone": {
            "title": "Practice Zone",
            "type": "string"
          },
          "providers": {
            "items": {
              "$ref": "#/components/schemas/ProviderOut"
            },
            "title": "Providers",
            "type": "array"
          },
          "statuses": {
            "items": {
              "type": "string"
            },
            "title": "Statuses",
            "type": "array"
          },
          "zone_basis": {
            "title": "Zone Basis",
            "type": "string"
          }
        },
        "required": [
          "practice_zone",
          "zone_basis",
          "norvya_reminders_for_partner_appointments",
          "providers",
          "statuses",
          "past_booked_window_hours"
        ],
        "title": "SchedulingSettings",
        "type": "object"
      },
      "SchedulingSettingsIn": {
        "properties": {
          "norvya_reminders_for_partner_appointments": {
            "title": "Norvya Reminders For Partner Appointments",
            "type": "boolean"
          }
        },
        "required": [
          "norvya_reminders_for_partner_appointments"
        ],
        "title": "SchedulingSettingsIn",
        "type": "object"
      },
      "ScoreOut": {
        "properties": {
          "band": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Band"
          },
          "max_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Score"
          },
          "positive_screen": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Positive Screen"
          },
          "subscales": {
            "additionalProperties": {
              "type": "number"
            },
            "title": "Subscales",
            "type": "object"
          },
          "total": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total"
          }
        },
        "title": "ScoreOut",
        "type": "object"
      },
      "ScreeningRequest": {
        "additionalProperties": false,
        "properties": {
          "instrument": {
            "default": "ahc_hrsn",
            "description": "ahc_hrsn (the CMS AHC-HRSN core tool). prapare answers 422 screener_not_available: it is not built in Norvya.",
            "examples": [
              "ahc_hrsn"
            ],
            "title": "Instrument",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Shown to staff in Norvya, never in the push.",
            "title": "Note"
          }
        },
        "title": "ScreeningRequest",
        "type": "object"
      },
      "ScreeningRequested": {
        "properties": {
          "instrument": {
            "title": "Instrument",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "notification": {
            "description": "What the patient receives: Norvya's generic push (no instrument name, no clinic text).",
            "examples": [
              "generic_push"
            ],
            "title": "Notification",
            "type": "string"
          },
          "screening_ref": {
            "examples": [
              "hrs_3f9c1a0b7d2e4c6a8b1d0e2f"
            ],
            "title": "Screening Ref",
            "type": "string"
          },
          "status": {
            "examples": [
              "requested"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "screening_ref",
          "member_ref",
          "instrument",
          "status",
          "notification"
        ],
        "title": "ScreeningRequested",
        "type": "object"
      },
      "SetIn": {
        "properties": {
          "distance_m": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Distance M"
          },
          "duration_seconds": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Seconds"
          },
          "load": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LoadIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "reps": {
            "anyOf": [
              {
                "maximum": 200.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              5
            ],
            "title": "Reps"
          },
          "rpe": {
            "anyOf": [
              {
                "maximum": 10.0,
                "minimum": 1.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              8
            ],
            "title": "Rpe"
          }
        },
        "title": "SetIn",
        "type": "object"
      },
      "ShiftIn": {
        "additionalProperties": false,
        "properties": {
          "confirmed": {
            "default": false,
            "title": "Confirmed",
            "type": "boolean"
          },
          "end_local": {
            "examples": [
              "2026-10-12T20:00"
            ],
            "title": "End Local",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "nurse_staff_ref": {
            "description": "A nurse or escort nurse on the care team (GET .../team).",
            "title": "Nurse Staff Ref",
            "type": "string"
          },
          "start_local": {
            "description": "Wall clock where the nursing happens.",
            "examples": [
              "2026-10-12T08:00"
            ],
            "title": "Start Local",
            "type": "string"
          },
          "tz": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "IANA zone (default: the case's).",
            "title": "Tz"
          }
        },
        "required": [
          "nurse_staff_ref",
          "start_local",
          "end_local"
        ],
        "title": "ShiftIn",
        "type": "object"
      },
      "ShiftStatusIn": {
        "additionalProperties": false,
        "properties": {
          "reason": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Required to cancel.",
            "title": "Reason"
          },
          "status": {
            "description": "confirmed | cancelled",
            "examples": [
              "cancelled"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "ShiftStatusIn",
        "type": "object"
      },
      "SimulateIn": {
        "properties": {
          "answers": {
            "anyOf": [
              {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Item answers (scored server-side); default a low, non-crisis set.",
            "title": "Answers"
          },
          "crisis_example": {
            "default": false,
            "description": "PHQ-9 only: item 9 positive, so the crisis gate fires.",
            "title": "Crisis Example",
            "type": "boolean"
          }
        },
        "title": "SimulateIn",
        "type": "object"
      },
      "SimulateJoinsIn": {
        "properties": {
          "fraction": {
            "default": 0.5,
            "description": "Share of the open invitations that join (max 200).",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Fraction",
            "type": "number"
          }
        },
        "title": "SimulateJoinsIn",
        "type": "object"
      },
      "SimulateJoinsOut": {
        "properties": {
          "joined": {
            "title": "Joined",
            "type": "integer"
          },
          "open_before": {
            "title": "Open Before",
            "type": "integer"
          },
          "simulated": {
            "default": true,
            "title": "Simulated",
            "type": "boolean"
          }
        },
        "required": [
          "joined",
          "open_before"
        ],
        "title": "SimulateJoinsOut",
        "type": "object"
      },
      "SimulatedJoin": {
        "properties": {
          "code_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code Ref"
          },
          "invite_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invite Ref"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "simulated": {
            "default": true,
            "title": "Simulated",
            "type": "boolean"
          }
        },
        "required": [
          "member_ref"
        ],
        "title": "SimulatedJoin",
        "type": "object"
      },
      "SnDomain": {
        "properties": {
          "domain": {
            "title": "Domain",
            "type": "string"
          },
          "positive": {
            "title": "Positive",
            "type": "boolean"
          }
        },
        "required": [
          "domain",
          "positive"
        ],
        "title": "SnDomain",
        "type": "object"
      },
      "SnFinding": {
        "properties": {
          "category": {
            "items": {
              "$ref": "#/components/schemas/Coding"
            },
            "title": "Category",
            "type": "array"
          },
          "code": {
            "$ref": "#/components/schemas/CodeableConcept"
          },
          "display": {
            "examples": [
              "Food insecurity"
            ],
            "title": "Display",
            "type": "string"
          },
          "domain": {
            "examples": [
              "food"
            ],
            "title": "Domain",
            "type": "string"
          },
          "finding": {
            "examples": [
              "food_insecurity"
            ],
            "title": "Finding",
            "type": "string"
          },
          "gravity_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The Gravity Project domain, as a plain term (not a coding).",
            "examples": [
              "food-insecurity"
            ],
            "title": "Gravity Domain"
          },
          "icd10": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "Z59.41"
            ],
            "title": "Icd10"
          },
          "snomed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "733423003"
            ],
            "title": "Snomed"
          }
        },
        "required": [
          "finding",
          "display",
          "domain",
          "code",
          "category"
        ],
        "title": "SnFinding",
        "type": "object"
      },
      "SnMember": {
        "properties": {
          "latest_screening": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SnScreening"
              },
              {
                "type": "null"
              }
            ]
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "pending_requests": {
            "items": {
              "$ref": "#/components/schemas/SnPending"
            },
            "title": "Pending Requests",
            "type": "array"
          },
          "referrals": {
            "description": "Referrals YOUR practice made for this patient.",
            "items": {
              "$ref": "#/components/schemas/SnReferral"
            },
            "title": "Referrals",
            "type": "array"
          },
          "safety_note": {
            "title": "Safety Note",
            "type": "string"
          },
          "screened": {
            "title": "Screened",
            "type": "boolean"
          }
        },
        "required": [
          "member_ref",
          "screened",
          "pending_requests",
          "referrals",
          "safety_note"
        ],
        "title": "SnMember",
        "type": "object"
      },
      "SnPending": {
        "properties": {
          "instrument": {
            "title": "Instrument",
            "type": "string"
          },
          "requested_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requested At"
          },
          "screening_ref": {
            "title": "Screening Ref",
            "type": "string"
          }
        },
        "required": [
          "screening_ref",
          "instrument"
        ],
        "title": "SnPending",
        "type": "object"
      },
      "SnReference": {
        "properties": {
          "closed_statuses": {
            "items": {
              "type": "string"
            },
            "title": "Closed Statuses",
            "type": "array"
          },
          "coding_note": {
            "title": "Coding Note",
            "type": "string"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/SnFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "not_available": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Not Available",
            "type": "array"
          },
          "open_statuses": {
            "items": {
              "type": "string"
            },
            "title": "Open Statuses",
            "type": "array"
          },
          "safety_note": {
            "title": "Safety Note",
            "type": "string"
          },
          "screeners": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Screeners",
            "type": "array"
          },
          "status_aliases": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Status Aliases",
            "type": "object"
          },
          "statuses": {
            "items": {
              "type": "string"
            },
            "title": "Statuses",
            "type": "array"
          },
          "task_status": {
            "additionalProperties": true,
            "description": "hrsn status -> FHIR R4 Task.status as the Gravity SDOH Clinical Care IG uses Task for a referral.",
            "title": "Task Status",
            "type": "object"
          },
          "withheld_domains": {
            "items": {
              "type": "string"
            },
            "title": "Withheld Domains",
            "type": "array"
          }
        },
        "required": [
          "screeners",
          "not_available",
          "findings",
          "withheld_domains",
          "safety_note",
          "statuses",
          "open_statuses",
          "closed_statuses",
          "status_aliases",
          "task_status",
          "coding_note"
        ],
        "title": "SnReference",
        "type": "object"
      },
      "SnReferral": {
        "properties": {
          "category": {
            "items": {
              "$ref": "#/components/schemas/Coding"
            },
            "title": "Category",
            "type": "array"
          },
          "closed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closed At"
          },
          "code": {
            "$ref": "#/components/schemas/CodeableConcept"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "domain": {
            "title": "Domain",
            "type": "string"
          },
          "finding": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finding"
          },
          "gravity_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gravity Domain"
          },
          "icd10": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Icd10"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "needs_met": {
            "title": "Needs Met",
            "type": "boolean"
          },
          "open": {
            "title": "Open",
            "type": "boolean"
          },
          "outcome_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outcome Note"
          },
          "referral_ref": {
            "examples": [
              "sdr_5e7a9c1b3d5f7a9c1e3a5b7d"
            ],
            "title": "Referral Ref",
            "type": "string"
          },
          "resource": {
            "$ref": "#/components/schemas/SnResource"
          },
          "sent_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sent At"
          },
          "snomed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Snomed"
          },
          "status": {
            "description": "hrsn status: proposed | offered | sent | accepted | completed | declined_by_patient | unreachable | closed_unmet",
            "examples": [
              "sent"
            ],
            "title": "Status",
            "type": "string"
          },
          "task_status": {
            "$ref": "#/components/schemas/SnTaskStatus"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "required": [
          "referral_ref",
          "member_ref",
          "domain",
          "code",
          "category",
          "resource",
          "status",
          "open",
          "needs_met",
          "task_status"
        ],
        "title": "SnReferral",
        "type": "object"
      },
      "SnReferralIn": {
        "additionalProperties": false,
        "properties": {
          "finding": {
            "description": "A finding from GET /v1/social-needs/reference.",
            "examples": [
              "food_insecurity"
            ],
            "title": "Finding",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "resource_contact": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "(614) 555-0100"
            ],
            "title": "Resource Contact"
          },
          "resource_name": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "Mid-Ohio Food Collective"
            ],
            "title": "Resource Name"
          },
          "status": {
            "default": "sent",
            "description": "An hrsn status, or the alias service_delivered / declined.",
            "examples": [
              "sent"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "finding"
        ],
        "title": "SnReferralIn",
        "type": "object"
      },
      "SnReferralList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SnReferral"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "SnReferralList",
        "type": "object"
      },
      "SnResource": {
        "properties": {
          "contact": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "(614) 555-0100"
            ],
            "title": "Contact"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "Mid-Ohio Food Collective"
            ],
            "title": "Name"
          }
        },
        "title": "SnResource",
        "type": "object"
      },
      "SnScreening": {
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "domains": {
            "items": {
              "$ref": "#/components/schemas/SnDomain"
            },
            "title": "Domains",
            "type": "array"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/SnFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "instrument": {
            "title": "Instrument",
            "type": "string"
          },
          "instrument_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instrument Version"
          },
          "requested_by_you": {
            "title": "Requested By You",
            "type": "boolean"
          },
          "screening_ref": {
            "title": "Screening Ref",
            "type": "string"
          },
          "unmet_needs_reported": {
            "title": "Unmet Needs Reported",
            "type": "integer"
          },
          "withheld_domains": {
            "items": {
              "type": "string"
            },
            "title": "Withheld Domains",
            "type": "array"
          }
        },
        "required": [
          "screening_ref",
          "instrument",
          "requested_by_you",
          "domains",
          "unmet_needs_reported",
          "findings",
          "withheld_domains"
        ],
        "title": "SnScreening",
        "type": "object"
      },
      "SnStatusIn": {
        "additionalProperties": false,
        "properties": {
          "outcome_note": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "Enrolled in weekly food box."
            ],
            "title": "Outcome Note"
          },
          "status": {
            "examples": [
              "accepted"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "SnStatusIn",
        "type": "object"
      },
      "SnTaskStatus": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "requested"
            ],
            "title": "Code"
          },
          "system": {
            "examples": [
              "http://hl7.org/fhir/task-status"
            ],
            "title": "System",
            "type": "string"
          }
        },
        "required": [
          "system"
        ],
        "title": "SnTaskStatus",
        "type": "object"
      },
      "SpirometryIn": {
        "properties": {
          "fev1_fvc": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Ratio as 0.65 or percent 65.",
            "title": "Fev1 Fvc"
          },
          "fev1_pct_pred": {
            "anyOf": [
              {
                "maximum": 200.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fev1 Pct Pred"
          },
          "fvc_pct_pred": {
            "anyOf": [
              {
                "maximum": 200.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fvc Pct Pred"
          }
        },
        "title": "SpirometryIn",
        "type": "object"
      },
      "SynDiagnosis": {
        "properties": {
          "code": {
            "examples": [
              "J06.9"
            ],
            "title": "Code",
            "type": "string"
          },
          "system": {
            "description": "I10 | I9CDX | SCT",
            "examples": [
              "I10"
            ],
            "title": "System",
            "type": "string"
          },
          "text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text"
          }
        },
        "required": [
          "code",
          "system"
        ],
        "title": "SynDiagnosis",
        "type": "object"
      },
      "SynMessage": {
        "properties": {
          "control_id": {
            "title": "Control Id",
            "type": "string"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Jurisdiction"
          },
          "message_ref": {
            "examples": [
              "ssm_5e7a9c1b3d5f7a9c1e3a5b7d"
            ],
            "title": "Message Ref",
            "type": "string"
          },
          "sent_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sent At"
          },
          "simulated": {
            "title": "Simulated",
            "type": "boolean"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "trigger": {
            "title": "Trigger",
            "type": "string"
          },
          "visit_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Visit Ref"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": [
          "message_ref",
          "trigger",
          "control_id",
          "status",
          "warnings",
          "simulated"
        ],
        "title": "SynMessage",
        "type": "object"
      },
      "SynMessageList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SynMessage"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "SynMessageList",
        "type": "object"
      },
      "SynSendBody": {
        "properties": {
          "trigger": {
            "description": "A01 | A03 | A04 | A08",
            "examples": [
              "A04"
            ],
            "title": "Trigger",
            "type": "string"
          }
        },
        "required": [
          "trigger"
        ],
        "title": "SynSendBody",
        "type": "object"
      },
      "SynStatus": {
        "properties": {
          "facility": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Facility"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Jurisdiction"
          },
          "messages_sent": {
            "title": "Messages Sent",
            "type": "integer"
          },
          "missing": {
            "examples": [
              [
                "facility_not_registered"
              ]
            ],
            "items": {
              "type": "string"
            },
            "title": "Missing",
            "type": "array"
          },
          "not_claimed": {
            "items": {
              "type": "string"
            },
            "title": "Not Claimed",
            "type": "array"
          },
          "posture": {
            "title": "Posture",
            "type": "string"
          },
          "profile_built_against": {
            "title": "Profile Built Against",
            "type": "string"
          },
          "ready": {
            "title": "Ready",
            "type": "boolean"
          },
          "settings": {
            "items": {
              "type": "string"
            },
            "title": "Settings",
            "type": "array"
          },
          "simulated": {
            "title": "Simulated",
            "type": "boolean"
          },
          "source": {
            "additionalProperties": true,
            "title": "Source",
            "type": "object"
          },
          "triggers": {
            "items": {
              "type": "string"
            },
            "title": "Triggers",
            "type": "array"
          }
        },
        "required": [
          "ready",
          "missing",
          "messages_sent",
          "triggers",
          "settings",
          "profile_built_against",
          "source",
          "not_claimed",
          "simulated",
          "posture"
        ],
        "title": "SynStatus",
        "type": "object"
      },
      "SynVisit": {
        "properties": {
          "age_years": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Age Years"
          },
          "arrived_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Arrived At"
          },
          "chief_complaint_recorded": {
            "title": "Chief Complaint Recorded",
            "type": "boolean"
          },
          "diagnoses": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Diagnoses",
            "type": "array"
          },
          "discharged_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharged At"
          },
          "disposition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disposition"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "not_reportable_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Not Reportable Reason"
          },
          "patient_class": {
            "title": "Patient Class",
            "type": "string"
          },
          "reportable": {
            "title": "Reportable",
            "type": "boolean"
          },
          "visit_number": {
            "title": "Visit Number",
            "type": "string"
          },
          "visit_ref": {
            "examples": [
              "ssv_2c4e6a8b0d2f4a6c8e0a2b4d"
            ],
            "title": "Visit Ref",
            "type": "string"
          }
        },
        "required": [
          "visit_ref",
          "member_ref",
          "visit_number",
          "patient_class",
          "chief_complaint_recorded",
          "diagnoses",
          "reportable"
        ],
        "title": "SynVisit",
        "type": "object"
      },
      "SynVisitBody": {
        "properties": {
          "age_years": {
            "anyOf": [
              {
                "maximum": 130.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Age Years"
          },
          "arrived_at": {
            "description": "ISO 8601 date-time, UTC.",
            "examples": [
              "2026-10-15T14:05:00Z"
            ],
            "title": "Arrived At",
            "type": "string"
          },
          "chief_complaint": {
            "anyOf": [
              {
                "maxLength": 199,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "In the patient's own words; a visit without one is never sent.",
            "examples": [
              "cough and fever 3 days"
            ],
            "title": "Chief Complaint"
          },
          "diagnoses": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/SynDiagnosis"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Diagnoses"
          },
          "discharged_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharged At"
          },
          "disposition": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disposition"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "patient_class": {
            "description": "E emergency | I inpatient | O outpatient",
            "examples": [
              "E"
            ],
            "title": "Patient Class",
            "type": "string"
          },
          "visit_number": {
            "examples": [
              "ED-2026-000123"
            ],
            "maxLength": 60,
            "title": "Visit Number",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "visit_number",
          "arrived_at",
          "patient_class"
        ],
        "title": "SynVisitBody",
        "type": "object"
      },
      "SynVisitList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SynVisit"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "SynVisitList",
        "type": "object"
      },
      "TargetsIn": {
        "properties": {
          "calories": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Calories"
          },
          "carbs_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Carbs G"
          },
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "fat_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fat G"
          },
          "fiber_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fiber G"
          },
          "patient_note": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Shown to the patient in Norvya.",
            "title": "Patient Note"
          },
          "post_session_protein_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Protein (g) within post_session_window_h hours after a session; needs the window.",
            "title": "Post Session Protein G"
          },
          "post_session_window_h": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Hours after a session (0.25-12). Alone, the patient's per-sitting protein threshold is the amount.",
            "title": "Post Session Window H"
          },
          "potassium_mg": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Potassium Mg"
          },
          "potassium_mode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "limit | goal (required with potassium_mg)",
            "title": "Potassium Mode"
          },
          "pre_session_protein_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Protein (g) within pre_session_window_h hours before a session; needs the window.",
            "title": "Pre Session Protein G"
          },
          "pre_session_window_h": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Hours before a session (0.25-12).",
            "title": "Pre Session Window H"
          },
          "protein_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Protein G"
          },
          "rest_day_calories": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Rest-day value.",
            "title": "Rest Day Calories"
          },
          "rest_day_carbs_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rest Day Carbs G"
          },
          "rest_day_fat_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rest Day Fat G"
          },
          "rest_day_protein_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rest Day Protein G"
          },
          "sodium_mg_limit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sodium Mg Limit"
          },
          "training_day_calories": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Training-day value. Any training_day_* / rest_day_* value turns the patient's macro schedule on with your values (a missing one falls back to the flat value).",
            "title": "Training Day Calories"
          },
          "training_day_carbs_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Training Day Carbs G"
          },
          "training_day_fat_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Training Day Fat G"
          },
          "training_day_protein_g": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Training Day Protein G"
          },
          "water_oz": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Water Oz"
          }
        },
        "required": [
          "clinician"
        ],
        "title": "TargetsIn",
        "type": "object"
      },
      "TcmWindow": {
        "properties": {
          "basis": {
            "title": "Basis",
            "type": "string"
          },
          "contact_by": {
            "description": "The 2nd business day after discharge.",
            "examples": [
              "2026-10-16"
            ],
            "title": "Contact By",
            "type": "string"
          },
          "discharge_date": {
            "examples": [
              "2026-10-14"
            ],
            "title": "Discharge Date",
            "type": "string"
          },
          "face_to_face_by": {
            "additionalProperties": {
              "type": "string"
            },
            "examples": [
              {
                "high_complexity": "2026-10-21",
                "moderate_complexity": "2026-10-28"
              }
            ],
            "title": "Face To Face By",
            "type": "object"
          },
          "period_end": {
            "examples": [
              "2026-11-12"
            ],
            "title": "Period End",
            "type": "string"
          }
        },
        "required": [
          "discharge_date",
          "contact_by",
          "face_to_face_by",
          "period_end",
          "basis"
        ],
        "title": "TcmWindow",
        "type": "object"
      },
      "TeamIn": {
        "properties": {
          "care_manager": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "staff_ref",
            "title": "Care Manager"
          },
          "psychiatric_consultant": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "staff_ref",
            "title": "Psychiatric Consultant"
          },
          "treating_provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "staff_ref",
            "title": "Treating Provider"
          }
        },
        "title": "TeamIn",
        "type": "object"
      },
      "TherapyCaseload": {
        "properties": {
          "disclaimer": {
            "title": "Disclaimer",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/TherapyEpisodeOut"
            },
            "title": "Items",
            "type": "array"
          },
          "sources": {
            "additionalProperties": true,
            "title": "Sources",
            "type": "object"
          },
          "thresholds": {
            "additionalProperties": true,
            "title": "Thresholds",
            "type": "object"
          },
          "withheld_not_sharing": {
            "description": "Caseload members who do not share mental health with you: counted, never shown.",
            "title": "Withheld Not Sharing",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "withheld_not_sharing",
          "thresholds",
          "sources",
          "disclaimer"
        ],
        "title": "TherapyCaseload",
        "type": "object"
      },
      "TherapyEpisodeOut": {
        "properties": {
          "crisis": {
            "$ref": "#/components/schemas/Crisis"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date"
          },
          "end_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Reason"
          },
          "episode_ref": {
            "examples": [
              "bhe_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Episode Ref",
            "type": "string"
          },
          "flags": {
            "description": "crisis_open | not_improving | scale_due, in priority order.",
            "items": {
              "type": "string"
            },
            "title": "Flags",
            "type": "array"
          },
          "homework": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/HomeworkCounts"
              },
              {
                "type": "null"
              }
            ]
          },
          "last_scale_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Scale At"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "next_scale_due": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Scale Due"
          },
          "scale_interval_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scale Interval Days"
          },
          "scales": {
            "items": {
              "type": "string"
            },
            "title": "Scales",
            "type": "array"
          },
          "scores": {
            "additionalProperties": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Scale"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": "Scores",
            "type": "object"
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date"
          },
          "status": {
            "description": "active | ended",
            "title": "Status",
            "type": "string"
          },
          "therapist": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "staff_ref of the treating clinician.",
            "title": "Therapist"
          },
          "weeks_in_care": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Weeks In Care"
          }
        },
        "required": [
          "episode_ref",
          "member_ref",
          "status",
          "scales",
          "scores",
          "crisis",
          "flags"
        ],
        "title": "TherapyEpisodeOut",
        "type": "object"
      },
      "ThreadMessageIn": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "description": "Plain text, sent as typed (no machine translation through the API).",
            "maxLength": 4000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          }
        },
        "required": [
          "body"
        ],
        "title": "ThreadMessageIn",
        "type": "object"
      },
      "TokenResponse": {
        "properties": {
          "access_token": {
            "title": "Access Token",
            "type": "string"
          },
          "expires_in": {
            "description": "Seconds until the token expires (900).",
            "title": "Expires In",
            "type": "integer"
          },
          "scope": {
            "description": "Space-separated scopes granted.",
            "title": "Scope",
            "type": "string"
          },
          "token_type": {
            "default": "bearer",
            "title": "Token Type",
            "type": "string"
          }
        },
        "required": [
          "access_token",
          "expires_in",
          "scope"
        ],
        "title": "TokenResponse",
        "type": "object"
      },
      "TrCell": {
        "properties": {
          "count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              12
            ],
            "title": "Count"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          }
        },
        "required": [
          "suppressed"
        ],
        "title": "TrCell",
        "type": "object"
      },
      "TrCheckin": {
        "properties": {
          "answers": {
            "additionalProperties": true,
            "description": "What the patient reported (question -> answer).",
            "examples": [
              {
                "breathless": "worse",
                "chest_pain": "no",
                "orthopnea": "no",
                "swelling": "same"
              }
            ],
            "title": "Answers",
            "type": "object"
          },
          "local_date": {
            "examples": [
              "2026-10-15"
            ],
            "title": "Local Date",
            "type": "string"
          },
          "red_flags": {
            "items": {
              "$ref": "#/components/schemas/TrFlag"
            },
            "title": "Red Flags",
            "type": "array"
          },
          "weight_kg": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Weight Kg"
          }
        },
        "required": [
          "local_date",
          "answers"
        ],
        "title": "TrCheckin",
        "type": "object"
      },
      "TrCheckinDays": {
        "properties": {
          "done": {
            "$ref": "#/components/schemas/TrCell"
          },
          "expected": {
            "$ref": "#/components/schemas/TrCell"
          }
        },
        "required": [
          "done",
          "expected"
        ],
        "title": "TrCheckinDays",
        "type": "object"
      },
      "TrCloseBody": {
        "additionalProperties": false,
        "examples": [
          {
            "outcome": "completed"
          }
        ],
        "properties": {
          "outcome": {
            "enum": [
              "completed",
              "readmitted",
              "withdrawn"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "readmitted_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD; required for readmitted (within 30 days).",
            "title": "Readmitted On"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Required for withdrawn.",
            "title": "Reason"
          }
        },
        "required": [
          "outcome"
        ],
        "title": "TrCloseBody",
        "type": "object"
      },
      "TrContact": {
        "properties": {
          "contact_at": {
            "examples": [
              "2026-10-15T15:30:00Z"
            ],
            "title": "Contact At",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "outcome": {
            "description": "reached | no_answer | left_message | wrong_number | declined",
            "examples": [
              "reached"
            ],
            "title": "Outcome",
            "type": "string"
          }
        },
        "required": [
          "contact_at",
          "outcome"
        ],
        "title": "TrContact",
        "type": "object"
      },
      "TrContactBody": {
        "additionalProperties": false,
        "examples": [
          {
            "contact_at": "2026-10-15T15:30:00Z",
            "note": "Weighing daily, has scale.",
            "outcome": "reached"
          }
        ],
        "properties": {
          "contact_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "ISO 8601 WITH an offset (default now).",
            "title": "Contact At"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "outcome": {
            "enum": [
              "reached",
              "no_answer",
              "left_message",
              "wrong_number",
              "declined"
            ],
            "title": "Outcome",
            "type": "string"
          }
        },
        "required": [
          "outcome"
        ],
        "title": "TrContactBody",
        "type": "object"
      },
      "TrDaysAtHome": {
        "properties": {
          "episodes_ascertained": {
            "$ref": "#/components/schemas/TrCell"
          },
          "episodes_without_ascertainment": {
            "$ref": "#/components/schemas/TrCell"
          },
          "mean_days_at_home": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Only over episodes whose full 30 days fall inside an ascertainment period, and only when there are min_cell of them: no ascertainment, no number.",
            "title": "Mean Days At Home"
          },
          "window_days": {
            "default": 30,
            "title": "Window Days",
            "type": "integer"
          }
        },
        "required": [
          "episodes_ascertained",
          "episodes_without_ascertainment"
        ],
        "title": "TrDaysAtHome",
        "type": "object"
      },
      "TrDue": {
        "properties": {
          "detail": {
            "additionalProperties": true,
            "description": "Counts and dates for this task (attempts, booked date, unconfirmed rows, open flags...).",
            "title": "Detail",
            "type": "object"
          },
          "due_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "When it falls due (the call: 48 h after discharge; follow-up: the 7-day deadline).",
            "examples": [
              "2026-10-16T14:00:00Z"
            ],
            "title": "Due At"
          },
          "overdue_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "2026-10-17T14:00:00Z"
            ],
            "title": "Overdue At"
          },
          "state": {
            "description": "contact: upcoming | due | overdue | done; follow-up: not_booked | none_reported | within_7_days | after_7_days; medicines: pending | done; red flags: open | clear.",
            "examples": [
              "due"
            ],
            "title": "State",
            "type": "string"
          },
          "task": {
            "description": "contact_48_72h | followup_visit_7_days | medication_reconciliation | red_flag_review",
            "examples": [
              "contact_48_72h"
            ],
            "title": "Task",
            "type": "string"
          }
        },
        "required": [
          "task",
          "state"
        ],
        "title": "TrDue",
        "type": "object"
      },
      "TrEnrolBody": {
        "additionalProperties": false,
        "examples": [
          {
            "admit_date": "2026-10-09",
            "condition": "heart_failure",
            "discharge_date": "2026-10-14",
            "discharge_unit": "4 West",
            "disposition": "home",
            "member_ref": "mr_3f9a0c1d2e4b5a6978c0d1e2",
            "pcp_name": "Dr. Rivera"
          }
        ],
        "properties": {
          "admit_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD; needed for length of stay (risk scores).",
            "title": "Admit Date"
          },
          "condition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "heart_failure | copd | ami | pneumonia | hip_knee_replacement | sepsis | other (default other).",
            "enum": [
              "heart_failure",
              "copd",
              "ami",
              "pneumonia",
              "hip_knee_replacement",
              "sepsis",
              "other"
            ],
            "title": "Condition"
          },
          "discharge_date": {
            "description": "YYYY-MM-DD; up to 30 days back, not after tomorrow.",
            "title": "Discharge Date",
            "type": "string"
          },
          "discharge_service": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharge Service"
          },
          "discharge_unit": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharge Unit"
          },
          "disposition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "enum": [
              "home",
              "home_health",
              "snf",
              "irf",
              "ltch",
              "hospice",
              "other"
            ],
            "title": "Disposition"
          },
          "member_ref": {
            "description": "mr_... or ext:<your id>.",
            "maxLength": 200,
            "title": "Member Ref",
            "type": "string"
          },
          "pcp_name": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pcp Name"
          },
          "pcp_phone": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pcp Phone"
          }
        },
        "required": [
          "member_ref",
          "discharge_date"
        ],
        "title": "TrEnrolBody",
        "type": "object"
      },
      "TrEpisode": {
        "properties": {
          "admit_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "2026-10-09"
            ],
            "title": "Admit Date"
          },
          "checkins": {
            "description": "Newest first (up to 60).",
            "items": {
              "$ref": "#/components/schemas/TrCheckin"
            },
            "title": "Checkins",
            "type": "array"
          },
          "close_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Close Reason"
          },
          "closed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closed At"
          },
          "condition": {
            "examples": [
              "heart_failure"
            ],
            "title": "Condition",
            "type": "string"
          },
          "contacts": {
            "description": "Newest first.",
            "items": {
              "$ref": "#/components/schemas/TrContact"
            },
            "title": "Contacts",
            "type": "array"
          },
          "day": {
            "description": "Days since discharge (day N of window_days).",
            "examples": [
              2
            ],
            "title": "Day",
            "type": "integer"
          },
          "discharge_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharge At"
          },
          "discharge_date": {
            "examples": [
              "2026-10-14"
            ],
            "title": "Discharge Date",
            "type": "string"
          },
          "discharge_service": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharge Service"
          },
          "discharge_unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharge Unit"
          },
          "disposition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "home"
            ],
            "title": "Disposition"
          },
          "due": {
            "items": {
              "$ref": "#/components/schemas/TrDue"
            },
            "title": "Due",
            "type": "array"
          },
          "ed_return_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ed Return On"
          },
          "ed_return_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ed Return Source"
          },
          "episode_id": {
            "description": "Opaque id for this episode at your organisation (never a row id).",
            "examples": [
              "pde_7c1e0b9a4d2f6e8a1b3c5d70"
            ],
            "title": "Episode Id",
            "type": "string"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "issues": {
            "description": "red_flag_open, contact_due, contact_overdue, followup_not_booked, followup_after_7_days, checkins_missed, med_rec_not_done, med_question_open, adherence_open, window_ended.",
            "examples": [
              [
                "contact_due"
              ]
            ],
            "items": {
              "type": "string"
            },
            "title": "Issues",
            "type": "array"
          },
          "med_reconciliation": {
            "$ref": "#/components/schemas/TrMedRec"
          },
          "meds": {
            "items": {
              "$ref": "#/components/schemas/TrMed"
            },
            "title": "Meds",
            "type": "array"
          },
          "member_ref": {
            "examples": [
              "mr_3f9a0c1d2e4b5a6978c0d1e2"
            ],
            "title": "Member Ref",
            "type": "string"
          },
          "pcp_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pcp Name"
          },
          "posture": {
            "title": "Posture",
            "type": "string"
          },
          "readmission_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "adt_feed | staff",
            "title": "Readmission Source"
          },
          "readmitted_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Readmitted On"
          },
          "risk": {
            "$ref": "#/components/schemas/TrRisk"
          },
          "source": {
            "description": "manual (staff or your system) | adt_a03 (an ADT discharge) | ehr_launch",
            "examples": [
              "manual"
            ],
            "title": "Source",
            "type": "string"
          },
          "status": {
            "description": "active | completed | readmitted | withdrawn",
            "examples": [
              "active"
            ],
            "title": "Status",
            "type": "string"
          },
          "tasks": {
            "description": "Open first, then newest.",
            "items": {
              "$ref": "#/components/schemas/TrTask"
            },
            "title": "Tasks",
            "type": "array"
          },
          "window_days": {
            "default": 30,
            "examples": [
              30
            ],
            "title": "Window Days",
            "type": "integer"
          }
        },
        "required": [
          "episode_id",
          "member_ref",
          "status",
          "source",
          "condition",
          "discharge_date",
          "day",
          "risk",
          "med_reconciliation",
          "posture"
        ],
        "title": "TrEpisode",
        "type": "object"
      },
      "TrEpisodeHead": {
        "properties": {
          "admit_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "2026-10-09"
            ],
            "title": "Admit Date"
          },
          "condition": {
            "examples": [
              "heart_failure"
            ],
            "title": "Condition",
            "type": "string"
          },
          "day": {
            "description": "Days since discharge (day N of window_days).",
            "examples": [
              2
            ],
            "title": "Day",
            "type": "integer"
          },
          "discharge_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharge At"
          },
          "discharge_date": {
            "examples": [
              "2026-10-14"
            ],
            "title": "Discharge Date",
            "type": "string"
          },
          "disposition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "home"
            ],
            "title": "Disposition"
          },
          "due": {
            "items": {
              "$ref": "#/components/schemas/TrDue"
            },
            "title": "Due",
            "type": "array"
          },
          "ed_return_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ed Return On"
          },
          "ed_return_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ed Return Source"
          },
          "episode_id": {
            "description": "Opaque id for this episode at your organisation (never a row id).",
            "examples": [
              "pde_7c1e0b9a4d2f6e8a1b3c5d70"
            ],
            "title": "Episode Id",
            "type": "string"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "issues": {
            "description": "red_flag_open, contact_due, contact_overdue, followup_not_booked, followup_after_7_days, checkins_missed, med_rec_not_done, med_question_open, adherence_open, window_ended.",
            "examples": [
              [
                "contact_due"
              ]
            ],
            "items": {
              "type": "string"
            },
            "title": "Issues",
            "type": "array"
          },
          "member_ref": {
            "examples": [
              "mr_3f9a0c1d2e4b5a6978c0d1e2"
            ],
            "title": "Member Ref",
            "type": "string"
          },
          "readmission_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "adt_feed | staff",
            "title": "Readmission Source"
          },
          "readmitted_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Readmitted On"
          },
          "risk": {
            "$ref": "#/components/schemas/TrRisk"
          },
          "source": {
            "description": "manual (staff or your system) | adt_a03 (an ADT discharge) | ehr_launch",
            "examples": [
              "manual"
            ],
            "title": "Source",
            "type": "string"
          },
          "status": {
            "description": "active | completed | readmitted | withdrawn",
            "examples": [
              "active"
            ],
            "title": "Status",
            "type": "string"
          },
          "window_days": {
            "default": 30,
            "examples": [
              30
            ],
            "title": "Window Days",
            "type": "integer"
          }
        },
        "required": [
          "episode_id",
          "member_ref",
          "status",
          "source",
          "condition",
          "discharge_date",
          "day",
          "risk"
        ],
        "title": "TrEpisodeHead",
        "type": "object"
      },
      "TrFlag": {
        "properties": {
          "population": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "Adults discharged after heart failure (patient instructions)"
            ],
            "title": "Population"
          },
          "source": {
            "$ref": "#/components/schemas/TrSource"
          },
          "text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The source's own wording of the warning sign.",
            "examples": [
              "You are more short of breath when you are doing your normal activities."
            ],
            "title": "Text"
          }
        },
        "required": [
          "source"
        ],
        "title": "TrFlag",
        "type": "object"
      },
      "TrFollowupBody": {
        "additionalProperties": false,
        "examples": [
          {
            "date": "2026-10-20",
            "with": "Dr. Rivera, Riverside FM"
          }
        ],
        "properties": {
          "date": {
            "description": "YYYY-MM-DD of the booked visit (not before discharge).",
            "title": "Date",
            "type": "string"
          },
          "with": {
            "description": "Who the visit is with.",
            "maxLength": 160,
            "title": "With",
            "type": "string"
          }
        },
        "required": [
          "date",
          "with"
        ],
        "title": "TrFollowupBody",
        "type": "object"
      },
      "TrMed": {
        "properties": {
          "answered_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Answered At"
          },
          "change": {
            "description": "continue | new | changed | stop",
            "examples": [
              "new"
            ],
            "title": "Change",
            "type": "string"
          },
          "dosage": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "40 mg"
            ],
            "title": "Dosage"
          },
          "entered_via": {
            "description": "typed | scan (a photo read; needs a staff confirmation)",
            "title": "Entered Via",
            "type": "string"
          },
          "frequency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "daily"
            ],
            "title": "Frequency"
          },
          "name": {
            "examples": [
              "Furosemide"
            ],
            "title": "Name",
            "type": "string"
          },
          "patient_answer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "have_it | taking_it | question | stopped; null: not answered yet.",
            "examples": [
              "taking_it"
            ],
            "title": "Patient Answer"
          },
          "patient_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Patient Note"
          },
          "staff_confirmed": {
            "title": "Staff Confirmed",
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "change",
          "entered_via",
          "staff_confirmed"
        ],
        "title": "TrMed",
        "type": "object"
      },
      "TrMedRec": {
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "open_questions": {
            "title": "Open Questions",
            "type": "integer"
          },
          "patient_answered": {
            "title": "Patient Answered",
            "type": "integer"
          },
          "patient_pending": {
            "title": "Patient Pending",
            "type": "integer"
          },
          "staff_complete": {
            "title": "Staff Complete",
            "type": "boolean"
          },
          "unconfirmed_scan_rows": {
            "title": "Unconfirmed Scan Rows",
            "type": "integer"
          }
        },
        "required": [
          "staff_complete",
          "count",
          "unconfirmed_scan_rows",
          "patient_answered",
          "patient_pending",
          "open_questions"
        ],
        "title": "TrMedRec",
        "type": "object"
      },
      "TrOutcomes": {
        "properties": {
          "by_condition": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TrCell"
            },
            "title": "By Condition",
            "type": "object"
          },
          "checkin_days": {
            "$ref": "#/components/schemas/TrCheckinDays"
          },
          "contacted_within_72h": {
            "$ref": "#/components/schemas/TrCell"
          },
          "days_at_home": {
            "$ref": "#/components/schemas/TrDaysAtHome"
          },
          "ed_returns_30d": {
            "$ref": "#/components/schemas/TrCell"
          },
          "ed_returns_by_source": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TrCell"
            },
            "title": "Ed Returns By Source",
            "type": "object"
          },
          "episodes": {
            "$ref": "#/components/schemas/TrCell"
          },
          "episodes_with_checkin": {
            "$ref": "#/components/schemas/TrCell"
          },
          "followup_within_7_days": {
            "$ref": "#/components/schemas/TrCell"
          },
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "label": {
            "default": "operational",
            "description": "Operational counts, NOT risk-adjusted HRRP measures.",
            "title": "Label",
            "type": "string"
          },
          "min_cell": {
            "examples": [
              5
            ],
            "title": "Min Cell",
            "type": "integer"
          },
          "notes": {
            "items": {
              "type": "string"
            },
            "title": "Notes",
            "type": "array"
          },
          "range": {
            "additionalProperties": {
              "type": "string"
            },
            "examples": [
              {
                "end": "2026-10-15",
                "start": "2026-07-18"
              }
            ],
            "title": "Range",
            "type": "object"
          },
          "readmissions_30d": {
            "$ref": "#/components/schemas/TrCell"
          },
          "readmissions_by_source": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TrCell"
            },
            "title": "Readmissions By Source",
            "type": "object"
          },
          "risk_adjusted": {
            "default": false,
            "title": "Risk Adjusted",
            "type": "boolean"
          },
          "suppression": {
            "title": "Suppression",
            "type": "string"
          },
          "window_complete": {
            "$ref": "#/components/schemas/TrCell"
          }
        },
        "required": [
          "generated_at",
          "range",
          "min_cell",
          "suppression",
          "episodes",
          "by_condition",
          "window_complete",
          "readmissions_30d",
          "readmissions_by_source",
          "ed_returns_30d",
          "ed_returns_by_source",
          "followup_within_7_days",
          "contacted_within_72h",
          "episodes_with_checkin",
          "checkin_days",
          "days_at_home",
          "notes"
        ],
        "title": "TrOutcomes",
        "type": "object"
      },
      "TrReturnBody": {
        "additionalProperties": false,
        "examples": [
          {
            "date": "2026-10-18",
            "kind": "ed_return"
          }
        ],
        "properties": {
          "date": {
            "description": "YYYY-MM-DD, after discharge and within 30 days.",
            "title": "Date",
            "type": "string"
          },
          "kind": {
            "enum": [
              "readmission",
              "ed_return"
            ],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "date"
        ],
        "title": "TrReturnBody",
        "type": "object"
      },
      "TrRisk": {
        "properties": {
          "audience": {
            "default": "staff_only",
            "description": "Prioritisation aids for staff; never shown to the patient.",
            "title": "Audience",
            "type": "string"
          },
          "band": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "high | intermediate | low across the scored results; null when nothing is scored.",
            "examples": [
              "high"
            ],
            "title": "Band"
          },
          "hospital": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TrScore"
              },
              {
                "type": "null"
              }
            ],
            "description": "Null unless every HOSPITAL input is recorded."
          },
          "lace": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TrScore"
              },
              {
                "type": "null"
              }
            ],
            "description": "Null unless every LACE input is recorded (never imputed)."
          },
          "not_scored": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "description": "Per score, the inputs not recorded.",
            "examples": [
              {
                "hospital": [
                  "hemoglobin_g_dl",
                  "sodium_mmol_l"
                ]
              }
            ],
            "title": "Not Scored",
            "type": "object"
          },
          "note": {
            "title": "Note",
            "type": "string"
          }
        },
        "required": [
          "note"
        ],
        "title": "TrRisk",
        "type": "object"
      },
      "TrScore": {
        "properties": {
          "band": {
            "description": "LACE: lower | moderate | higher (a later-studies convention); HOSPITAL: low | intermediate | high (as published).",
            "examples": [
              "higher"
            ],
            "title": "Band",
            "type": "string"
          },
          "band_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Band Note"
          },
          "citation": {
            "title": "Citation",
            "type": "string"
          },
          "max": {
            "examples": [
              19
            ],
            "title": "Max",
            "type": "integer"
          },
          "points": {
            "additionalProperties": {
              "type": "integer"
            },
            "examples": [
              {
                "A": 3,
                "C": 2,
                "E": 2,
                "L": 4
              }
            ],
            "title": "Points",
            "type": "object"
          },
          "population": {
            "title": "Population",
            "type": "string"
          },
          "score": {
            "examples": [
              11
            ],
            "title": "Score",
            "type": "integer"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "required": [
          "score",
          "max",
          "band",
          "points",
          "citation",
          "population"
        ],
        "title": "TrScore",
        "type": "object"
      },
      "TrSource": {
        "properties": {
          "section": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "When to Call the Doctor"
            ],
            "title": "Section"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "VERIFIED | NORVYA_CONVENTION | UNVERIFIED (the source audit).",
            "examples": [
              "VERIFIED"
            ],
            "title": "Status"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "MedlinePlus, Heart failure - discharge"
            ],
            "title": "Title"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "https://medlineplus.gov/ency/patientinstructions/000114.htm"
            ],
            "title": "Url"
          }
        },
        "title": "TrSource",
        "type": "object"
      },
      "TrTask": {
        "properties": {
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "flag": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TrFlag"
              },
              {
                "type": "null"
              }
            ],
            "description": "For red_flag and adherence: the rule's wording and source."
          },
          "kind": {
            "description": "red_flag | med_question | no_followup | adherence",
            "examples": [
              "red_flag"
            ],
            "title": "Kind",
            "type": "string"
          },
          "medicine": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "For med_question: the medicine the patient asked about.",
            "title": "Medicine"
          },
          "resolution_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolution Note"
          },
          "resolved_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved At"
          },
          "status": {
            "description": "open | resolved",
            "examples": [
              "open"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "status"
        ],
        "title": "TrTask",
        "type": "object"
      },
      "TrWorklist": {
        "properties": {
          "due_filter": {
            "examples": [
              "all"
            ],
            "title": "Due Filter",
            "type": "string"
          },
          "due_rules": {
            "title": "Due Rules",
            "type": "string"
          },
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/TrEpisodeHead"
            },
            "title": "Items",
            "type": "array"
          },
          "posture": {
            "title": "Posture",
            "type": "string"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          },
          "tz": {
            "examples": [
              "America/New_York"
            ],
            "title": "Tz",
            "type": "string"
          },
          "withheld_link_inactive": {
            "description": "Episodes hidden because the patient's link with your organisation is no longer live (count only).",
            "title": "Withheld Link Inactive",
            "type": "integer"
          }
        },
        "required": [
          "generated_at",
          "tz",
          "due_filter",
          "due_rules",
          "total",
          "withheld_link_inactive",
          "items",
          "posture"
        ],
        "title": "TrWorklist",
        "type": "object"
      },
      "TrainingResponse": {
        "properties": {
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "lifts": {
            "description": "Per lift: name, muscle_group, e1rm_lbs, change_lbs, trend (up | down | flat | stalled), stalled_weeks, sessions, best_set, series [{date, e1rm_lbs}].",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Lifts",
            "type": "array"
          },
          "load": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "acwr (last week's tonnage / 4-week baseline), band (spike | elevated | low | null), note (irregular_base).",
            "title": "Load"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "note": {
            "title": "Note",
            "type": "string"
          },
          "prs_this_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prs This Week"
          },
          "readiness": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "status (ready | caution | rest) and the plan adjustment; only while the member shares wearables. Never the recovery score.",
            "title": "Readiness"
          },
          "shares_activity": {
            "title": "Shares Activity",
            "type": "boolean"
          },
          "weekly_sets": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Hard sets per muscle group in the last 7 days with status (undertraining | adequate | optimal | overtraining_risk) and the MEV / MAV / MRV landmarks.",
            "title": "Weekly Sets"
          },
          "window_weeks": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Window Weeks"
          },
          "withheld": {
            "description": "activity | wearable: inputs the member does not share with you.",
            "items": {
              "type": "string"
            },
            "title": "Withheld",
            "type": "array"
          },
          "workouts": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "last_7_days, last_14_days, last_30_days, last_workout_date (null without activity sharing).",
            "title": "Workouts"
          }
        },
        "required": [
          "member_ref",
          "shares_activity",
          "note"
        ],
        "title": "TrainingResponse",
        "type": "object"
      },
      "TranslationIn": {
        "additionalProperties": false,
        "properties": {
          "field": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default: the item type's first free-text field.",
            "title": "Field"
          },
          "item_ref": {
            "description": "The item's item_ref (a journey_ref for care_journey).",
            "title": "Item Ref",
            "type": "string"
          },
          "item_type": {
            "description": "care_journey | shift_note | mar_entry | incident | nursing_lomn | nursing_pause | nursing_shift | nursing_invoice",
            "examples": [
              "shift_note"
            ],
            "title": "Item Type",
            "type": "string"
          },
          "target_language": {
            "examples": [
              "ar"
            ],
            "title": "Target Language",
            "type": "string"
          }
        },
        "required": [
          "item_type",
          "item_ref",
          "target_language"
        ],
        "title": "TranslationIn",
        "type": "object"
      },
      "TravelList": {
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "TravelList",
        "type": "object"
      },
      "TreatmentIn": {
        "properties": {
          "areas": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Areas"
          },
          "category": {
            "description": "neurotoxin | dermal_filler | laser_energy | chemical_peel | microneedling | iv_therapy | other",
            "title": "Category",
            "type": "string"
          },
          "lot_number": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lot Number"
          },
          "notes": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "product_name": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Name"
          },
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "staff_ref of the treating clinician (GET /v1/panel/clinicians)",
            "title": "Provider"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity"
          },
          "quantity_unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "units | ml | syringes | vials | passes | sessions | other",
            "title": "Quantity Unit"
          },
          "treated_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD, within the last 365 days (default today).",
            "title": "Treated On"
          }
        },
        "required": [
          "category"
        ],
        "title": "TreatmentIn",
        "type": "object"
      },
      "TriageIn": {
        "properties": {
          "note": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Required with reason_code other.",
            "title": "Note"
          },
          "reason_code": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "addressed_in_visit"
            ],
            "title": "Reason Code"
          },
          "snooze_days": {
            "anyOf": [
              {
                "maximum": 365.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Snooze Days"
          },
          "snooze_until": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD, 1..365 days ahead (snoozed).",
            "examples": [
              "2026-11-15"
            ],
            "title": "Snooze Until"
          },
          "state": {
            "description": "open | addressed | snoozed | dismissed",
            "examples": [
              "addressed"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state"
        ],
        "title": "TriageIn",
        "type": "object"
      },
      "TriageOut": {
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "domain": {
            "title": "Domain",
            "type": "string"
          },
          "item_ref": {
            "title": "Item Ref",
            "type": "string"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "severity": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Severity"
          },
          "triage": {
            "additionalProperties": true,
            "title": "Triage",
            "type": "object"
          }
        },
        "required": [
          "item_ref",
          "member_ref",
          "code",
          "domain",
          "triage"
        ],
        "title": "TriageOut",
        "type": "object"
      },
      "UsageDay": {
        "properties": {
          "calls": {
            "title": "Calls",
            "type": "integer"
          },
          "day": {
            "title": "Day",
            "type": "string"
          },
          "endpoint": {
            "title": "Endpoint",
            "type": "string"
          },
          "errors": {
            "title": "Errors",
            "type": "integer"
          }
        },
        "required": [
          "day",
          "endpoint",
          "calls",
          "errors"
        ],
        "title": "UsageDay",
        "type": "object"
      },
      "UsageResponse": {
        "properties": {
          "billable_calls": {
            "default": 0,
            "description": "Calls that count toward usage-based pricing (always 0 in a sandbox).",
            "title": "Billable Calls",
            "type": "integer"
          },
          "by_endpoint": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "By Endpoint",
            "type": "object"
          },
          "client_id": {
            "title": "Client Id",
            "type": "string"
          },
          "days": {
            "items": {
              "$ref": "#/components/schemas/UsageDay"
            },
            "title": "Days",
            "type": "array"
          },
          "environment": {
            "default": "live",
            "description": "live | sandbox. Sandbox calls are counted but never billed.",
            "title": "Environment",
            "type": "string"
          },
          "from": {
            "title": "From",
            "type": "string"
          },
          "to": {
            "title": "To",
            "type": "string"
          },
          "total_calls": {
            "title": "Total Calls",
            "type": "integer"
          }
        },
        "required": [
          "client_id",
          "from",
          "to",
          "total_calls",
          "by_endpoint",
          "days"
        ],
        "title": "UsageResponse",
        "type": "object"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      },
      "VideoLinkBody": {
        "properties": {
          "context": {
            "default": "general",
            "description": "general | concierge (therapy and medical travel visits are opened in the app).",
            "examples": [
              "concierge"
            ],
            "title": "Context",
            "type": "string"
          },
          "interpreter_language": {
            "anyOf": [
              {
                "maxLength": 12,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              "es"
            ],
            "title": "Interpreter Language"
          }
        },
        "title": "VideoLinkBody",
        "type": "object"
      },
      "VideoLinkOut": {
        "properties": {
          "appointment_ref": {
            "title": "Appointment Ref",
            "type": "string"
          },
          "closes_at": {
            "title": "Closes At",
            "type": "string"
          },
          "created": {
            "title": "Created",
            "type": "boolean"
          },
          "duration_minutes": {
            "title": "Duration Minutes",
            "type": "integer"
          },
          "interpreter_language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interpreter Language"
          },
          "join_in_app": {
            "default": true,
            "description": "The clinician and the patient join from the Norvya app; no vendor URL or token leaves Norvya.",
            "title": "Join In App",
            "type": "boolean"
          },
          "joinable_now": {
            "title": "Joinable Now",
            "type": "boolean"
          },
          "opens_at": {
            "title": "Opens At",
            "type": "string"
          },
          "recording": {
            "default": false,
            "title": "Recording",
            "type": "boolean"
          },
          "sandbox": {
            "default": false,
            "title": "Sandbox",
            "type": "boolean"
          },
          "scheduled_start": {
            "title": "Scheduled Start",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "transcription": {
            "default": false,
            "title": "Transcription",
            "type": "boolean"
          },
          "video_visit_ref": {
            "title": "Video Visit Ref",
            "type": "string"
          }
        },
        "required": [
          "appointment_ref",
          "video_visit_ref",
          "created",
          "status",
          "scheduled_start",
          "duration_minutes",
          "opens_at",
          "closes_at",
          "joinable_now"
        ],
        "title": "VideoLinkOut",
        "type": "object"
      },
      "WebhookCreate": {
        "properties": {
          "events": {
            "description": "Subset of: worklist.run_completed, patient.attention_needed, import.completed, import.failed, population.export_completed (medical practices), patient.admitted, patient.discharged, patient.ed_visit (treating practices and hospitals holding transitions.notices.read), transition.episode_enrolled, transition.red_flag (hospitals holding transitions.read), member.at_risk (any organisation holding fitness.roster.read)",
            "items": {
              "type": "string"
            },
            "title": "Events",
            "type": "array"
          },
          "url": {
            "description": "https:// only; must resolve to public addresses.",
            "maxLength": 2048,
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "url",
          "events"
        ],
        "title": "WebhookCreate",
        "type": "object"
      },
      "WebhookCreated": {
        "properties": {
          "consecutive_failures": {
            "default": 0,
            "title": "Consecutive Failures",
            "type": "integer"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "disabled_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disabled At"
          },
          "disabled_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disabled Reason"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "title": "Events",
            "type": "array"
          },
          "last_failure_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Failure At"
          },
          "last_success_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Success At"
          },
          "secret": {
            "description": "Shown ONCE. Verify each delivery's Norvya-Signature with it.",
            "title": "Secret",
            "type": "string"
          },
          "signature_header": {
            "default": "Norvya-Signature",
            "title": "Signature Header",
            "type": "string"
          },
          "status": {
            "description": "active | disabled (after repeated failures; POST .../enable)",
            "title": "Status",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          },
          "webhook_id": {
            "title": "Webhook Id",
            "type": "string"
          }
        },
        "required": [
          "webhook_id",
          "url",
          "events",
          "status",
          "secret"
        ],
        "title": "WebhookCreated",
        "type": "object"
      },
      "WebhookDeliveries": {
        "properties": {
          "deliveries": {
            "items": {
              "$ref": "#/components/schemas/WebhookDelivery"
            },
            "title": "Deliveries",
            "type": "array"
          },
          "webhook_id": {
            "title": "Webhook Id",
            "type": "string"
          }
        },
        "required": [
          "webhook_id",
          "deliveries"
        ],
        "title": "WebhookDeliveries",
        "type": "object"
      },
      "WebhookDelivery": {
        "properties": {
          "attempts": {
            "title": "Attempts",
            "type": "integer"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "delivered_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivered At"
          },
          "delivery_id": {
            "title": "Delivery Id",
            "type": "string"
          },
          "event": {
            "title": "Event",
            "type": "string"
          },
          "event_id": {
            "title": "Event Id",
            "type": "string"
          },
          "last_attempt_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Attempt At"
          },
          "last_error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Error"
          },
          "last_status_code": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Status Code"
          },
          "next_attempt_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Attempt At"
          },
          "payload": {
            "additionalProperties": true,
            "title": "Payload",
            "type": "object"
          },
          "status": {
            "description": "pending | delivered | failed | cancelled",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "delivery_id",
          "event",
          "event_id",
          "status",
          "attempts",
          "payload"
        ],
        "title": "WebhookDelivery",
        "type": "object"
      },
      "WebhookEvent": {
        "description": "Every webhook payload. No health data, ever: fetch resource_url with your token, where the data is consent-filtered and audited as a read.",
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "event": {
            "description": "The event name.",
            "type": "string"
          },
          "id": {
            "description": "evt_...: the same for every endpoint the event fans out to.",
            "type": "string"
          },
          "member_ref": {
            "description": "On events about one member: your organisation's opaque reference for them.",
            "type": "string"
          },
          "resource_url": {
            "description": "A /v1 path to GET with your partner token.",
            "type": "string"
          }
        },
        "required": [
          "event",
          "id",
          "created_at",
          "resource_url"
        ],
        "title": "WebhookEvent",
        "type": "object"
      },
      "WebhookList": {
        "properties": {
          "webhooks": {
            "items": {
              "$ref": "#/components/schemas/WebhookOut"
            },
            "title": "Webhooks",
            "type": "array"
          }
        },
        "required": [
          "webhooks"
        ],
        "title": "WebhookList",
        "type": "object"
      },
      "WebhookOut": {
        "properties": {
          "consecutive_failures": {
            "default": 0,
            "title": "Consecutive Failures",
            "type": "integer"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "disabled_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disabled At"
          },
          "disabled_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disabled Reason"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "title": "Events",
            "type": "array"
          },
          "last_failure_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Failure At"
          },
          "last_success_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Success At"
          },
          "status": {
            "description": "active | disabled (after repeated failures; POST .../enable)",
            "title": "Status",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          },
          "webhook_id": {
            "title": "Webhook Id",
            "type": "string"
          }
        },
        "required": [
          "webhook_id",
          "url",
          "events",
          "status"
        ],
        "title": "WebhookOut",
        "type": "object"
      },
      "WorkerIn": {
        "properties": {
          "department": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "employee_ref": {
            "description": "Your own employee number.",
            "maxLength": 160,
            "title": "Employee Ref",
            "type": "string"
          },
          "first_exposure_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD (hearing conservation baseline)",
            "title": "First Exposure On"
          },
          "full_name": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Full Name"
          },
          "hazards": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "GET /v1/occupational/programs hazards[]",
            "title": "Hazards"
          },
          "job_title": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          }
        },
        "required": [
          "employee_ref"
        ],
        "title": "WorkerIn",
        "type": "object"
      },
      "WorklistFinding": {
        "properties": {
          "code": {
            "description": "Stable rule key, e.g. a1c_above_9 or gap:colorectal_cancer_screening.",
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "What the physician may want to review (a prompt, never an order).",
            "title": "Detail"
          },
          "domain": {
            "title": "Domain",
            "type": "string"
          },
          "engine": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Engine"
          },
          "evidence": {
            "description": "The values the rule used.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Evidence",
            "type": "array"
          },
          "guideline": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The published source of the rule.",
            "title": "Guideline"
          },
          "item_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "This finding's id for POST /v1/panel/worklist/items/{item_ref}/triage. Stable across runs (same patient + rule = same ref).",
            "title": "Item Ref"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          },
          "params": {
            "additionalProperties": true,
            "title": "Params",
            "type": "object"
          },
          "reason_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "i18n key of the reason, with params.",
            "title": "Reason Key"
          },
          "severity": {
            "description": "urgent | high | medium | low",
            "title": "Severity",
            "type": "string"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Plain-language headline (wording library pending clinician review; see wording_status).",
            "title": "Title"
          },
          "triage": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "The finding's triage state as staff (or your system) set it: state (open | addressed | snoozed | dismissed), effective_state (a snooze that has ended reads open), reason_code, snooze_until, reopened_reason (escalated | reappeared | snooze_ended), set_by (staff | api | system | null), updated_at.",
            "title": "Triage"
          },
          "wording_fallback": {
            "default": false,
            "description": "True when no rule-specific wording exists (generic text).",
            "title": "Wording Fallback",
            "type": "boolean"
          }
        },
        "required": [
          "code",
          "domain",
          "severity"
        ],
        "title": "WorklistFinding",
        "type": "object"
      },
      "WorklistItem": {
        "properties": {
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/WorklistFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "title": "Limitations",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "priority": {
            "description": "Transparent score: 1000 per urgent, 100 per high, 10 per medium, 1 per low finding (each level capped at 9).",
            "title": "Priority",
            "type": "integer"
          },
          "rank": {
            "description": "1 = needs attention first (within your filters).",
            "title": "Rank",
            "type": "integer"
          },
          "top_severity": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Top Severity"
          },
          "triage": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "open_count, triaged_count and run_priority (the run's score before triage; `priority` counts open findings only).",
            "title": "Triage"
          }
        },
        "required": [
          "member_ref",
          "rank",
          "priority",
          "findings"
        ],
        "title": "WorklistItem",
        "type": "object"
      },
      "WorklistResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/WorklistItem"
            },
            "title": "Items",
            "type": "array"
          },
          "limit": {
            "title": "Limit",
            "type": "integer"
          },
          "offset": {
            "title": "Offset",
            "type": "integer"
          },
          "pending_run": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WorklistRun"
              },
              {
                "type": "null"
              }
            ]
          },
          "run": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WorklistRun"
              },
              {
                "type": "null"
              }
            ],
            "description": "The latest completed current-data run (null: none yet)."
          },
          "total": {
            "title": "Total",
            "type": "integer"
          },
          "wording_status": {
            "title": "Wording Status",
            "type": "string"
          }
        },
        "required": [
          "total",
          "offset",
          "limit",
          "wording_status",
          "items"
        ],
        "title": "WorklistResponse",
        "type": "object"
      },
      "WorklistRun": {
        "properties": {
          "as_of": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "As Of"
          },
          "error_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Count"
          },
          "finished_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "patient_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Patient Count"
          },
          "processed_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Processed Count"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "description": "queued | running | completed | failed",
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "additionalProperties": true,
            "description": "Counts only.",
            "title": "Summary",
            "type": "object"
          }
        },
        "required": [
          "id",
          "status"
        ],
        "title": "WorklistRun",
        "type": "object"
      },
      "WorkoutIn": {
        "properties": {
          "device": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "maximum": 600.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              55
            ],
            "title": "Duration Minutes"
          },
          "exercises": {
            "items": {
              "$ref": "#/components/schemas/ExerciseIn"
            },
            "maxItems": 30,
            "minItems": 1,
            "title": "Exercises",
            "type": "array"
          },
          "external_id": {
            "examples": [
              "GYM-SESSION-88412"
            ],
            "maxLength": 128,
            "minLength": 1,
            "title": "External Id",
            "type": "string"
          },
          "session_rpe": {
            "anyOf": [
              {
                "maximum": 10.0,
                "minimum": 1.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "examples": [
              7
            ],
            "title": "Session Rpe"
          },
          "started_at": {
            "description": "ISO 8601 with a UTC offset.",
            "examples": [
              "2026-10-14T18:00:00-04:00"
            ],
            "title": "Started At",
            "type": "string"
          },
          "workout_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": "strength",
            "description": "strength | cardio | hiit | mobility | conditioning | other",
            "title": "Workout Type"
          }
        },
        "required": [
          "external_id",
          "started_at",
          "exercises"
        ],
        "title": "WorkoutIn",
        "type": "object"
      },
      "WorkoutsIn": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/WorkoutIn"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "WorkoutsIn",
        "type": "object"
      },
      "Wound": {
        "description": "A tracked wound or burn: the record and its assessment dates only.\nNo measurement (length, width, depth, area, perimeter, area reduction)\nand none of the wound model's type, stage, severity, healing trajectory\nor tissue percentages are returned (removed 16 October 2026).",
        "properties": {
          "assessments": {
            "title": "Assessments",
            "type": "integer"
          },
          "body_location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Body Location"
          },
          "case_type": {
            "description": "wound | burn",
            "title": "Case Type",
            "type": "string"
          },
          "first_assessed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Assessed"
          },
          "images_available": {
            "default": false,
            "title": "Images Available",
            "type": "boolean"
          },
          "last_assessed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Assessed"
          },
          "series": {
            "description": "Assessment dates, oldest first (at most 50).",
            "items": {
              "$ref": "#/components/schemas/WoundAssessment"
            },
            "title": "Series",
            "type": "array"
          },
          "wound_ref": {
            "title": "Wound Ref",
            "type": "string"
          }
        },
        "required": [
          "wound_ref",
          "case_type",
          "assessments",
          "series"
        ],
        "title": "Wound",
        "type": "object"
      },
      "WoundAssessment": {
        "description": "One assessment: its date only. Measurements are image-based estimates\nand are not shared with partners (removed 16 October 2026).",
        "properties": {
          "assessed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessed At"
          }
        },
        "title": "WoundAssessment",
        "type": "object"
      },
      "WoundsResponse": {
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "images_available": {
            "default": false,
            "title": "Images Available",
            "type": "boolean"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "note": {
            "title": "Note",
            "type": "string"
          },
          "wounds": {
            "items": {
              "$ref": "#/components/schemas/Wound"
            },
            "title": "Wounds",
            "type": "array"
          }
        },
        "required": [
          "member_ref",
          "count",
          "wounds",
          "note"
        ],
        "title": "WoundsResponse",
        "type": "object"
      },
      "WriteResponse": {
        "properties": {
          "created": {
            "title": "Created",
            "type": "integer"
          },
          "duplicates": {
            "title": "Duplicates",
            "type": "integer"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/ItemOutcome"
            },
            "title": "Items",
            "type": "array"
          },
          "member_ref": {
            "title": "Member Ref",
            "type": "string"
          },
          "rejected": {
            "title": "Rejected",
            "type": "integer"
          },
          "source": {
            "description": "practice_emr (your practice's own record) | partner_gym",
            "examples": [
              "practice_emr"
            ],
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "member_ref",
          "created",
          "duplicates",
          "rejected",
          "items",
          "source"
        ],
        "title": "WriteResponse",
        "type": "object"
      },
      "_Clinician": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          }
        },
        "required": [
          "clinician"
        ],
        "title": "_Clinician",
        "type": "object"
      },
      "routers__partner_api_actions__ClinicianIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who did it (GET /v1/panel/clinicians).",
            "examples": [
              "stf_1a2b3c4d5e6f7a8b9c0d1e2f"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": [
          "clinician"
        ],
        "title": "ClinicianIn",
        "type": "object"
      },
      "routers__partner_api_bh_onc__CheckOut": {
        "properties": {
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kind"
          },
          "lane": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The engine's lane: none | urgent | emergency.",
            "title": "Lane"
          },
          "open_red_flag": {
            "title": "Open Red Flag",
            "type": "boolean"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          }
        },
        "required": [
          "open_red_flag"
        ],
        "title": "CheckOut",
        "type": "object"
      },
      "routers__partner_api_bh_onc__ClinicianIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician acting.",
            "title": "Clinician",
            "type": "string"
          }
        },
        "required": [
          "clinician"
        ],
        "title": "ClinicianIn",
        "type": "object"
      },
      "routers__partner_api_employer_spa__ProgramIn": {
        "properties": {
          "drug_cost_per_member_month": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your own figure; Norvya supplies no drug prices.",
            "title": "Drug Cost Per Member Month"
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "started_on": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD",
            "title": "Started On"
          }
        },
        "title": "ProgramIn",
        "type": "object"
      },
      "routers__partner_api_fitness_hospital__Cell": {
        "properties": {
          "count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Null when withheld.",
            "title": "Count"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          }
        },
        "required": [
          "suppressed"
        ],
        "title": "Cell",
        "type": "object"
      },
      "routers__partner_api_fitness_hospital__NoteIn": {
        "properties": {
          "text": {
            "description": "A training note (plain text). The member does not see trainer notes. Do not put medical information here.",
            "examples": [
              "Form check on squat: depth improving. Add 5 lb next session."
            ],
            "maxLength": 2000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "NoteIn",
        "type": "object"
      },
      "routers__partner_api_practice_plus__CheckOut": {
        "additionalProperties": true,
        "properties": {
          "check": {
            "title": "Check",
            "type": "string"
          },
          "educational": {
            "default": true,
            "title": "Educational",
            "type": "boolean"
          },
          "stored": {
            "default": false,
            "description": "Always false: stateless checks keep nothing.",
            "title": "Stored",
            "type": "boolean"
          }
        },
        "required": [
          "check"
        ],
        "title": "CheckOut",
        "type": "object"
      },
      "routers__partner_api_records__Cell": {
        "properties": {
          "count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Count"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          }
        },
        "required": [
          "suppressed"
        ],
        "title": "Cell",
        "type": "object"
      },
      "routers__partner_api_rehab_nutrition__NoteIn": {
        "properties": {
          "assessment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": "",
            "title": "Assessment"
          },
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "diagnosis": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": "",
            "title": "Diagnosis"
          },
          "finalize": {
            "default": false,
            "title": "Finalize",
            "type": "boolean"
          },
          "follow_up_timeframe": {
            "anyOf": [
              {
                "maxLength": 60,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Follow Up Timeframe"
          },
          "intervention": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": "",
            "title": "Intervention"
          },
          "monitoring_evaluation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": "",
            "title": "Monitoring Evaluation"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "required": [
          "clinician"
        ],
        "title": "NoteIn",
        "type": "object"
      },
      "routers__partner_api_rehab_nutrition__ProgramIn": {
        "properties": {
          "clinician": {
            "description": "staff_ref of the clinician who decided this (rehab: GET /v1/panel/clinicians; nutrition: GET /v1/nutrition/staff).",
            "examples": [
              "stf_4c1d2e3f4a5b6c7d8e9f0a1b"
            ],
            "title": "Clinician",
            "type": "string"
          },
          "focus": {
            "description": "pt: low_back | neck | knee | hip | shoulder | general | pelvic_floor; ot: hand | adl | energy_conservation | joint_protection; slp: swallowing | voice | articulation | language",
            "title": "Focus",
            "type": "string"
          },
          "items": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "{exercise_key, sets?, reps?, hold_seconds?, minutes?, days_per_week?}; default the focus's starter set (PT).",
            "title": "Items"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": [
          "clinician",
          "focus"
        ],
        "title": "ProgramIn",
        "type": "object"
      },
      "routers__partner_api_roster__Cell": {
        "properties": {
          "count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Count"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          }
        },
        "required": [
          "suppressed"
        ],
        "title": "Cell",
        "type": "object"
      },
      "routers__partner_api_router__Cell": {
        "properties": {
          "count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Null when withheld.",
            "examples": [
              42
            ],
            "title": "Count"
          },
          "suppressed": {
            "description": "True when the count is withheld (small cell, or complementary suppression so a withheld cell cannot be recovered by subtraction).",
            "title": "Suppressed",
            "type": "boolean"
          }
        },
        "required": [
          "suppressed"
        ],
        "title": "Cell",
        "type": "object"
      }
    },
    "securitySchemes": {
      "HTTPBearer": {
        "scheme": "bearer",
        "type": "http"
      },
      "PartnerOAuth2": {
        "description": "OAuth2 client_credentials for partner systems. Exchange the client id and secret your organisation's admin created for a 15-minute bearer token.",
        "flows": {
          "clientCredentials": {
            "scopes": {
              "behavioral.read": "Read your measurement-based-care caseload (PHQ-9 / GAD-7 / PCL-5 totals and trend, what is due, the not-improving prompt, homework progress as counts), one patient's scores and homework, and your Collaborative Care / BHI registry with each episode's status and flags; with billing.read also an episode's month as a candidate for your biller. Only patients who share mental health with you; never psychotherapy notes, safety plans, homework entry text or 42 CFR Part 2 records (treating practices with a BAA on file; not a designated Part 2 program).",
              "behavioral.write": "Assign and end between-session homework (Norvya's own generic notification), enrol a patient in Collaborative Care or general BHI, record the documented consent and discharge, each attributed to a named clinician of your practice (patients who share mental health with you only).",
              "billing.estimates.write": "Issue a No Surprises Act Good Faith Estimate for a patient from your system: your codes and your charges, the same required-contents check as Norvya's own screen (treating practices only).",
              "billing.read": "Read care-management time and remote-monitoring days per patient per month, with the program's published reference marks reached, as candidates for your biller's review (never a charge or an eligibility determination); billing candidates for staff review; and Good Faith Estimates (treating practices only).",
              "care_sites.events.write": "Record a round check, report a medication incident, and report an incident or a change in a resident's condition (Norvya alerts the site's nurses with its own generic wording) (pharmacies and care-facility operators).",
              "care_sites.family.write": "Issue a family member read-only access to a resident (a one-time code by email; a named staff member attests the resident's or guardian's consent), list it and revoke it at once (pharmacies and care-facility operators, BAA on file).",
              "care_sites.mar.write": "Record a scheduled dose as given, held or refused, and an as-needed dose with its reason and follow-up, on a resident's medication administration record; only doses on the resident's schedule (pharmacies and care-facility operators).",
              "care_sites.read": "Read the assisted living, group home and nursing home sites your organisation runs: the census, each resident's medication administration record, rounds, medication incidents, incident and change-of-condition reports, care plans and emergency-preparedness attestations (pharmacies and care-facility operators, their own sites only, BAA on file).",
              "care_sites.residents.write": "Admit a resident to one of the assisted living, group home or nursing home sites your organisation runs: an existing patient by member_ref, or a resident without a Norvya login by your own resident ID; a named staff member attests the consent basis (the resident, a guardian or the facility's admission agreement) (pharmacies and care-facility operators, BAA on file).",
              "claims.import.write": "Send claims files (CMS CCLF Part A / B / D, or your plan's claims as CSV / NDJSON in the documented shape): staged with a dry run (match rate, row errors by code), then committed or discarded. MBIs and plan member ids are fingerprinted and never stored (treating practices and programme organisations with a BAA on file).",
              "claims.read": "Read a member's claims summary (counts by part and setting, dates, top diagnosis categories, CMS-HCC categories only when an official model is loaded) from your imported claims and, when the member shares their medical history with you, their own Medicare Blue Button summary; and whether they connected Blue Button or VA records (read-only).",
              "claims.risk_adjustment.read": "Read risk-adjustment audit evidence for a member: the diagnosis codes in the claims you imported with the dated claims documenting each, grouped into CMS-HCC categories only when an official model is loaded; never a risk score (treating practices and programme organisations with a BAA on file).",
              "clinical.annual_review.read": "Read a patient's member annual review content (their year in numbers, what is going well, screenings and vaccines, the open findings a physician may select); urgent and practice-internal findings are never selectable (treating practices only).",
              "clinical.brief.read": "Read the clinician pre-visit brief for a patient (medical practices only; per-section consent).",
              "clinical.credentials.read": "Read your practice's clinicians with the licence and NPI fields Norvya holds for them and whether Norvya verified them (treating practices only).",
              "clinical.loops.write": "Close the loop on results and referrals from your system: record that a named clinician acknowledged a result, that the patient was told, the action taken, and move a tracked referral through scheduled, seen, report received and closed (medical practices only).",
              "clinical.morning_brief.read": "Read one clinician's morning brief for a day: the members on their schedule, what changed since each member's last visit, open referrals and suggested labs, on what the practice may use for each member (treating practices only).",
              "clinical.outreach.read": "Read rule-based message drafts for your patients' open worklist findings, in the patient's language; never sent by this call (send with messages.write) and never for urgent or practice-internal findings (treating practices only).",
              "clinical.panel.read": "Read the practice's ranked panel worklist and start worklist runs (medical practices only).",
              "clinical.panel.write": "Triage your practice's worklist findings from your system (addressed, snoozed until a date, dismissed with a reason, or reopened) with the same rules as Norvya's own worklist screen (medical practices only).",
              "clinical.patient.match": "Find the member_ref of one of your practice's patients from your own identifier (MRN) plus date of birth; exactly one match or 404 (medical practices only; tightly rate limited, audited).",
              "clinical.patient.read": "Read a patient's care gaps and between-visit home-data signals (medical practices only; consent and data basis respected).",
              "clinical.ratings.write": "Record a clinician-rated or clinician-timed measure (for example FOIS, Nine-Hole Peg Test, AIMS) that a named clinician of your practice assigned; scored by Norvya (treating practices only).",
              "clinical.record.read": "Read one patient's record as a FHIR R4 Bundle (the same builders and the same consent scope as the population export: the patient's sharing choices, your practice's own records, 42 CFR Part 2 records only under a covering consent); size-capped, with the population export for large records (treating practices with a BAA on file, or a sandbox).",
              "clinical.reports.read": "Read your practice's quarterly value report and programme outcomes report as JSON: aggregates only, counts below the small-cell minimum withheld, with the reports' honest framing (observational, this practice only); no dollar figure (treating practices only).",
              "clinical.specialty.read": "Read a patient's specialty hub results (cardio, nephro, endo, neuro, pulmo, rheum, GI and questionnaires) under their sharing switches, and run the stateless spirometry, lung-cancer screening and GI alarm checks (treating practices only).",
              "clinical.video.write": "Open a telehealth video room for an existing appointment of your practice (Daily, under Norvya's BAA; recording and transcription off); participants join in the Norvya app (treating practices only).",
              "derm.classify": "Skin-lesion image classification. NOT ENABLED: every call answers 409 skin_classifier_not_enabled until the model passes validation and a regulatory decision is recorded (see /model-cards/isic_binary). When enabled it returns calibrated probabilities with their uncertainty, never a diagnosis and never a single label.",
              "derm.read": "Read a patient's tracked skin lesions (location, monitoring cadence, next recheck, and per photograph the date, the symptoms recorded and any biopsy result; size changes between photographs as image-based estimates; never the photograph and never the classifier's label or probabilities), your panel's lesion rechecks that are due, hidradenitis and acne severity history, patch tests with the allergen avoidance list, and the wound log (each wound's location and assessment dates, never its measurements) (treating practices with a BAA on file; lesions and wounds need the patient to share skin scans with you, severity and patch tests their medical history).",
              "derm.write": "Record a hidradenitis suppurativa (IHS4 / Hurley) or acne (IGA) assessment, start a patch test with your own panel and record its 48h / 96h / day 7 reads, each attributed to a named clinician of your practice and scored by Norvya; never from a photograph (treating practices with a BAA on file).",
              "documents.read": "List and download the documents Norvya already produces about a patient (care plans, survivorship plans, reviews, summaries, estimates) as PDF, in the patient's language where the document supports it; each document kind keeps its own consent gate (treating practices, including medical-travel desks, and pharmacies).",
              "employer.challenges.read": "Read your sponsor recognition challenges, the allow-listed catalog and each challenge's suppressed group counts (joined, completed, completions per week) (employers only).",
              "employer.challenges.write": "Create or update a recognition challenge for your programme's members: a participation or activity item from the allow-listed catalog, a 7 to 92 day window, a badge only (no cash, no health-outcome targets) (employers only).",
              "employer.programs.read": "Read your GLP-1 programme set-up (enrolment code, the enrolled count) and its aggregate report: persistence, weight and HbA1c change, engagement, your own drug-cost arithmetic and recognition counts, every number suppressed below the minimum group size; never a person (employers only).",
              "employer.programs.write": "Create or update your GLP-1 programme (name, start date, your drug cost per member month, active) and regenerate its enrolment code; employees join only in the app, with their own consent (employers only).",
              "fitness.analytics.read": "Read your gym's member retention against your own baseline and whether more-engaged members get better results, as aggregate counts with small cells withheld; members who do not share activity are excluded (gyms, fitness and personal-training organisations only).",
              "fitness.guidance.read": "Read gym-safe trainer guidance for a member (consent-filtered; no diagnoses, drugs or readings).",
              "fitness.notes.read": "Read your trainers' notes about a member (your organisation's own notes; the member does not see them) (gyms, fitness and personal-training organisations only).",
              "fitness.notes.write": "Add a trainer note about a member: training notes only, length-capped, kept as your organisation's record (gyms, fitness and personal-training organisations only).",
              "fitness.nudge.write": "Ask Norvya to send a member its standard re-engagement push (gyms only; Norvya's own wording, deduplicated; never your text).",
              "fitness.roster.read": "Read the at-risk roster: your active members ranked for a trainer's attention (churn level, gym-safe flags, the one priority action), consent-filtered; no diagnoses, drugs or readings.",
              "fitness.training.read": "Read a member's training: completed workouts, estimated one-rep max per lift, weekly hard sets per muscle group against the volume landmarks, and the training-load ratio while the member shares activity with you; the readiness band (never a recovery score or a reading) only while they share wearables (gyms, fitness and personal-training organisations only).",
              "hospice.read": "Read your hospice agency's census (election date, level of care, care site, length of stay, discharge), one patient's hospice record with the benefit period and the recertification and face-to-face dates computed from your recorded dates, and the IDG plan-of-care reviews due; never a prognosis or an eligibility statement (hospice agencies only, BAA on file).",
              "hospice.visits.read": "Read planned and completed visits by discipline for your hospice patients: a visit is missed only when your staff recorded it not done, and a past visit with nothing recorded is 'not recorded' (hospice agencies only, BAA on file).",
              "hospital.days_at_home.read": "Read a patient's observed days at home from recorded care events, only inside a recorded ascertainment period (no period, no number) (hospitals only, with a BAA on file; the patient must share their medical history with you).",
              "hospital.wounds.read": "Read a patient's wound log: each wound's location, whether it is a wound or a burn, and its assessment dates; never the measurements (image-based estimates) or the photographs (hospitals only, with a BAA on file; the patient must share their skin scans with you).",
              "hospital_at_home.read": "Read your hospital-at-home episodes: contacts against your own protocol, escalations, and the NEWS2 observation timeline (hospitals only, with a BAA on file).",
              "hospital_at_home.write": "Open and close hospital-at-home episodes for your patients; the admission attestations are your clinician's, recorded as such (hospitals only, with a BAA on file).",
              "instruments.read": "Read questionnaire scores (total, severity band, subscales) with the instrument version and completion time, never item-level answers; mental-health instruments only when the patient shares mental health with you (treating practices only).",
              "instruments.request": "Ask a patient to complete a validated questionnaire from Norvya's instrument library; Norvya sends its own generic notification (treating practices only).",
              "life_stages.read": "Read what a parent or guardian shared with your practice about their child (the well-child and vaccine schedule, growth measurements with WHO / CDC percentiles, EPSDT screening status, never adolescent screening answers) and a patient's own pregnancy or postpartum summary; the newborn record and milestone checklists are never shared with an organisation (treating practices only).",
              "medspa.aftercare.read": "Read aesthetic treatments with their aftercare check-in schedule and alerts, adverse events, and the retreatment-due list on your practice's own intervals (treating practices, BAA on file).",
              "medspa.aftercare.write": "Record an aesthetic treatment (its aftercare check-ins are scheduled) and an adverse event for a patient of your practice (treating practices, BAA on file).",
              "medspa.clearance.read": "Read your practice's treatment-clearance intakes: the screen's flags with their reason and source, and the supervising provider's decision and expiry (treating practices that offer clearance, BAA on file).",
              "medspa.glp1_oversight.read": "Read your medical director's GLP-1 oversight roster: patients on a GLP-1 / GIP medicine whose medication data they share with you, the therapy as recorded, last injection logged, weight trend, latest labs, diabetes monitoring status and each finding with its verbatim FDA label citation (pending clinician sign-off); never a dose suggestion or a prescribing recommendation (treating practices, BAA on file).",
              "medspa.photos.read": "Read a patient's before / after photo timeline as metadata (view, phase, area, date, consent flags); image files are not served through the API (treating practices).",
              "members.claim_invite": "Invite a patient your practice imported (no Norvya login yet) to claim their own account: Norvya emails its own invitation in the patient's language with a one-time code that also needs their date of birth; follow the invitation to claimed (treating practices with a BAA on file).",
              "members.invite": "Invite people to join your organisation on Norvya (Norvya emails its own invitation in the person's language; never a pre-granted consent: the person chooses what to share in the app) and create printable join codes; follow each invitation to joined. Daily cap, de-duplicated per address, and the answer never says whether an address has an account.",
              "members.read": "List the organisation's linked members as opaque member references.",
              "members.roster.read": "Read your rosters and their enrolment report: invited, opened, joined, expired, revoked and declined as small-cell-suppressed counts by cohort, plus the status of each of your roster rows (medical practices / programmes only).",
              "members.roster.write": "Upload a roster of your eligible members (CSV / NDJSON, or a CMS eligibility / attribution file), review its dry run, then have Norvya invite them in bulk (its own email in each person's language; daily cap, queued not dropped), send reminders and collect phone-only join links. MBIs never stored raw (medical practices / programmes with a BAA only).",
              "messages.read": "Read your organisation's in-app conversation with a member, including their replies (audited as a disclosure).",
              "messages.write": "Send a member a secure in-app message from your organisation (the conversation your staff use in Norvya); Norvya notifies them with its own generic wording, never your text. Members who turned messages off are refused.",
              "nutrition.mnt.read": "Read a patient's Medicare MNT referrals, recorded visits and hours next to the rule text, and superbill candidates for your biller as JSON: the codes and units your dietitian recorded, never a code Norvya chose, never submitted, not a coverage decision (treating practices only).",
              "nutrition.read": "Read your dietitians' caseload (Norvya-convention flags), a patient's dietitian nutrition targets, food rules and meals, the food-log review against targets (only when the patient shares nutrition; unlogged days are unknown, never missed) and structured MNT visit notes (treating practices only).",
              "nutrition.write": "Act for a named dietitian of your practice: set or release nutrition targets the app then holds the patient to, add or end food rules, set or release RD meals, write a structured MNT visit note (treating practices only).",
              "observations.write": "Write measurements to a member's own record: vitals, lab results and body composition (practices with a BAA on file), or body composition and the vitals a gym measures (gyms; never labs). Idempotent per item by your external_id; units converted, implausible values refused; DELETE retracts only your own item.",
              "occupational.injuries.write": "Record a work injury report for an employer you examine for under an active service agreement; the employer sees only the classification inputs, never the description (treating practices only).",
              "occupational.read": "Read your occupational-health roster, the exam programmes, each worker's released exam conclusions (determination, restrictions, follow-up, due dates; never findings or the worker's answers), next-due dates and injury reports for your own log (employers only).",
              "occupational.write": "Add workers to your occupational-health roster and request an exam from a practice you hold a service agreement with (employers only).",
              "older_adults.read": "Read an older patient's falls risk tier (CDC STEADI) and falls-prevention programmes, physical function (Katz ADL / Lawton IADL only where this deployment holds the licence and the patient completed them), medication burden for medication review (count, anticholinergic burden, sedatives; never advice), your care dyads (caregiver link and consent status, never the caregiver's contact details), the sleep-apnoea pathway and CPAP adherence (an unlogged night is unknown, not missed), the status of the five fillable dementia risk factors (never a risk score) and the hospice review status (never an eligibility answer); each under the patient's sharing choices (treating practices only).",
              "older_adults.write": "Log a contact with one of your care dyads (navigator check-in, care-plan review, education, support line, respite arranged, referral), attributed to a named member of your staff; no free text (treating practices only).",
              "oncology.import.write": "Send a FHIR R4 oncology treatment-summary bundle for one patient: staged as a draft with what was mapped and what was not (nothing is written to the record), then commit the values a named clinician reviewed, or discard it.",
              "oncology.read": "Read your survivorship caseload with the status flags Norvya computes (plan status, next dated follow-up, open red flags by lane) and a patient's cancer treatment summary; never the side-effect check-in answers (treating practices with a BAA on file; the patient must share their medical history with you).",
              "panel.import.write": "Stage, review, commit and discard practice panel imports (FHIR Bulk Data, or a spreadsheet with a saved mapping profile; medical practices with a BAA on file only).",
              "pharmacy.adherence.read": "Read a patient's dose log and adherence summary: taken, skipped and unrecorded kept apart (an unrecorded dose is never counted as missed) and never a proportion of days covered (pharmacies only; the patient must share medications with you).",
              "pharmacy.delivery.write": "Record a verified pack (the four-item checklist, all confirmed) and a delivery confirmed at the door (pharmacies only).",
              "pharmacy.episodes.write": "Open a discharge follow-up episode and record the day-3 / day-30 contacts, how each medication difference was resolved, the 30-day outcome and closing (pharmacies only).",
              "pharmacy.patients.read": "Read your pharmacy's patients (medicines-sharing status, pack cycle, open discharge follow-up), discharge follow-up episodes, medication reviews, the packing queue and deliveries, the monitoring-due list (a consensus schedule, not an order) and refills due (pharmacies only, BAA on file).",
              "pharmacy.reviews.write": "Start a medication review, add the pharmacist's recommendations and the prescriber's answer, and complete it (pharmacies only).",
              "population.aggregate.read": "Read aggregate counts for your whole active panel (worklist tiers, rising risk, care gaps); every count below the small-cell minimum is suppressed, no ids (medical practices only).",
              "population.export": "Run asynchronous FHIR Bulk Data exports of your panel, identified (each patient's sharing choices apply) or HIPAA Safe Harbor de-identified; audited per file (medical practices only).",
              "population.measures.export": "Download the QRDA Category III file for the 2026 period: TRUE counts, not submission-validated, audited and refused when the audit log is down (medical practices only).",
              "population.measures.read": "Read five eCQM-style quality measures and the Million Hearts ABCS as suppressed rates; NOT a certified eCQM calculation (medical practices only).",
              "programs.benefits.read": "Read your practice's benefits-coordination worklist (transport and home-modification requests on open community referrals); Norvya never determines eligibility or books a ride (treating practices only).",
              "programs.community_care.read": "Read the VA Community Care, IHS Purchased/Referred Care and TRICARE referrals and authorisations your practice recorded in Norvya, with authorised dates, visits used and documentation deadlines; Norvya never authorises care or determines eligibility (treating practices only).",
              "programs.readiness.read": "Read unit readiness as counts only (physiology, training load, duty status), small cells and dominance suppressed, no individual, no questionnaire or behavioural-health data and never a projection (military unit and first-responder organisations only).",
              "public_health.case_reports.read": "Read electronic case reporting readiness, candidates, reports and the Reportability Responses public health sent back (treating practices and hospitals).",
              "public_health.case_reports.write": "Electronic case reporting: match a patient against the loaded trigger codes, confirm or dismiss a candidate, build the eICR, transmit it, and file a Reportability Response (treating practices and hospitals; refused unless case reporting is active for you).",
              "public_health.immunizations.read": "Read your registry connection's readiness, the patient's immunization record, your submissions and their acknowledgements, and query the registry for a patient's history (treating practices and hospitals; the patient must share their medical history with you).",
              "public_health.immunizations.write": "Report a patient's immunization to your state immunization registry (HL7 v2 VXU) and preview what would be sent; an explicit act, audited, refused unless your registry connection is active under a signed state agreement (treating practices and hospitals).",
              "public_health.syndromic.read": "Read your syndromic surveillance readiness and what was sent where (no patient data in the message list).",
              "public_health.syndromic.write": "Syndromic surveillance (NSSP): record an emergency or urgent-care visit and send its HL7 v2 ADT message, one explicit send at a time (registered reporting facilities only).",
              "rehab.read": "Read a patient's physical, occupational and speech therapy record with your practice: recovery episodes (discipline, restrictions, milestones), home exercise programs with the days the patient recorded (an unrecorded day is never a missed one), functional goals and the patient's own ratings, the home-safety checklist (no score), IDDSI food and drink levels and episode outcome measures; the patient must share their medical history with you (treating practices only).",
              "rehab.write": "Act in Norvya for a named clinician of your practice on that record: set an episode's discipline, lead therapist and restrictions, assign or end a home program, create or update goals, set or end IDDSI levels, recommend home-safety items, request a patient-reported outcome measure for an episode or record a clinician-rated one (treating practices only).",
              "scheduling.read": "Read your practice's appointments (booked in Norvya or sent by your system), one practice zone, cursor-paginated, plus the scheduling settings (treating practices only).",
              "scheduling.write": "Send appointments from your practice-management system, idempotently by your own appointment id; cancel never deletes. Change whether Norvya sends its own reminders for them (treating practices only).",
              "social_needs.read": "Read a patient's health-related social needs screen (AHC-HRSN core) with the positive domains coded to ICD-10-CM Z-codes and SNOMED CT as Norvya asserts them, and the closed-loop community referrals your practice made, with Gravity-aligned Task status (treating practices only; the patient must share their medical history with you; a positive interpersonal-safety screen never leaves Norvya).",
              "social_needs.write": "Ask a patient to complete a social needs screen (Norvya's generic push), and create and update closed-loop referrals to community organisations (treating practices only).",
              "staff_wellbeing.read": "Read your own staff's combined burnout check-in results: participation, bands and scores, only once enough people answered; never who answered or who did not (employers and treating practices).",
              "transitions.adt.write": "Send HL7 v2 ADT messages (A01 / A02 / A03 / A04) from your feed; matched only to your own linked patients on MRN + date of birth, counts returned, nothing echoed (treating practices and hospitals with a BAA on file).",
              "transitions.notices.read": "Read the hospital admissions, discharges and ED visits Norvya received for a patient of your practice, with the Transitional Care Management windows (treating practices and hospitals; each patient's sharing choices apply).",
              "transitions.read": "Read your hospital's post-discharge worklist, episode detail and operational outcomes (hospitals only, BAA on file).",
              "transitions.write": "Enrol post-discharge episodes and record calls, follow-up visits, closes and returns from your care-management system (hospitals only, BAA on file).",
              "travel.billing.read": "Read the monthly home-nursing invoices per PRN (lines, hold flags, totals in integer minor units) and download them as PDF or HTML.",
              "travel.documents.read": "Download a journey's documents: the HL7 International Patient Summary, the FHIR repatriation packet, the bilingual readable summary and the weekly nursing reports (each an audited export, inside the patient's sharing choices).",
              "travel.inquiries.read": "Read your desk's travel inquiries (contact, origin, language, sponsor, the coordinator's summary, status history) with their quote versions (each an immutable Good Faith Estimate). Medical-travel desks with a BAA on file.",
              "travel.inquiries.write": "Create an inquiry from your own system by its id, edit it, link a patient on your roster, issue or revise its quote, and move it through the desk's own statuses. Converting an accepted inquiry to a journey also needs travel.journeys.write.",
              "travel.journeys.read": "Read your desk's care journeys (phase, dates, continuity after repatriation, timeline), their flights and transfers with live flight status where configured, the care team and staff hours, approval progress, and your partner-hospital directory (accreditations as recorded; Norvya verifies none). Medical-travel desks with a BAA on file.",
              "travel.journeys.write": "Open a care journey for a patient on your roster (it waits for the patient's acceptance), move it forward a phase, add, edit and cancel flights and transfers, and keep your partner-hospital directory.",
              "travel.messages.read": "Read the in-app message thread on a journey: the desk, the patient and the caregiver the patient approved (who see the same thread).",
              "travel.messages.write": "Post in a journey's thread as your desk's system (shown as \"Partner system\", never as a person); the patient and caregiver get Norvya's generic push. Refused until the patient has accepted the journey.",
              "travel.nursing.read": "Read home-nursing cases: the sponsor's PRN, LOMN and LOG versions, shifts, the hours check, visit records (notes, vitals, medication administration, incidents), satisfaction survey results and sponsor referrals.",
              "travel.nursing.write": "Record a new LOG version, plan, confirm and cancel nursing shifts (never outside the newest LOG's dates or in a pause: the server refuses), move a nursing case forward, and send a sponsor referral for a patient without the app.",
              "travel.translations.write": "Ask Norvya to machine-translate a free-text item on a journey (the reason for travel, a visit note, a medication line, an incident, a LOMN instruction) into a supported language; the original stays the record.",
              "vendor.practices.read": "EMR vendors: list the practices that have approved your integration (a vendor-level token, requested without a practice; no patient data).",
              "webhooks.manage": "Register HTTPS webhook endpoints (payloads carry no PHI). Each event also needs its own scope: worklist / attention events clinical.panel.read, import events panel.import.write, population.export_completed population.export (medical practices only), member.at_risk fitness.roster.read, public_health.iis_ack_received public_health.immunizations.read, public_health.case_report_response public_health.case_reports.read. claims.import_completed needs claims.import.write (medical practices only). member.account_claimed needs members.claim_invite (medical practices only). hospital_at_home.escalation needs hospital_at_home.read (hospitals only). hospice.idg_review_due needs hospice.read (hospice agencies only). pharmacy.refill_due and pharmacy.discharge_episode_opened need pharmacy.patients.read; care_site.change_of_condition, care_site.incident_recorded and care_site.mar_exception need care_sites.read (pharmacies and care-facility operators, their own sites). travel.journey_updated and travel.leg_status_changed need travel.journeys.read, travel.nursing_visit_recorded travel.nursing.read, travel.invoice_issued travel.billing.read (medical-travel desks only). travel.inquiry_updated needs travel.inquiries.read, travel.journey_message_posted travel.messages.read (medical-travel desks only). instrument.batch_dispatched needs instruments.request (medical practices only). roster.enrolment_summary needs members.roster.read (medical practices only). older_adults.falls_tier_raised needs older_adults.read (medical practices only). employer.challenge_completed needs employer.challenges.read and occupational.exam_due occupational.read (employers only); medspa.adverse_event_reported needs medspa.aftercare.read (treating practices only). rehab.goal_met needs rehab.read; nutrition.caseload_flagged needs nutrition.read (medical practices only). cocm.review_due needs behavioral.read (medical practices only). derm.lesion_recheck_due and derm.patch_test_read_recorded need derm.read (medical practices only).",
              "workouts.write": "Write completed training sessions (exercises, sets, reps, load, RPE, duration) to a member's record, so strength progress, weekly sets and readiness see them (gyms, fitness and personal-training organisations only)."
            },
            "tokenUrl": "/v1/oauth/token"
          }
        },
        "type": "oauth2"
      }
    }
  },
  "info": {
    "description": "Norvya health intelligence for partner systems: gyms, practices, platforms. Server-to-server, OAuth2 client credentials, consent-scoped.",
    "title": "Norvya Partner API",
    "version": "1.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/v1/appointments": {
      "get": {
        "description": "Ordered by start time. Includes appointments patients booked in Norvya\n(so your system can mirror them) and every practice system's appointments;\nexternal_id is filled only for your own. Patients no longer linked to your\npractice are left out. Pass next_cursor back as ?cursor= for the next page.",
        "operationId": "appointments_list_v1_appointments_get",
        "parameters": [
          {
            "description": "YYYY-MM-DD on the practice's clock; default today.",
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD on the practice's clock; default today.",
              "title": "From"
            }
          },
          {
            "description": "YYYY-MM-DD inclusive; default from + 30 days; at most 366 days.",
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD inclusive; default from + 30 days; at most 366 days.",
              "title": "To"
            }
          },
          {
            "description": "booked | checked_in | completed | cancelled | no_show",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "booked | checked_in | completed | cancelled | no_show",
              "title": "Status"
            }
          },
          {
            "description": "norvya | partner",
            "in": "query",
            "name": "source",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "norvya | partner",
              "title": "Source"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppointmentList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "scheduling.read"
            ]
          }
        ],
        "summary": "Your practice's appointments, booked in Norvya or sent by a practice system",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/appointments/ext/{external_id}": {
      "delete": {
        "description": "DELETE means cancel: the status becomes cancelled and the row stays, so\nits history is legible and the brief no longer counts it. Repeating it is\nharmless. Returns the appointment.",
        "operationId": "appointment_cancel_v1_appointments_ext__external_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "external_id",
            "required": true,
            "schema": {
              "title": "External Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "reason",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 300,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Reason"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppointmentOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "scheduling.write"
            ]
          }
        ],
        "summary": "Cancel one of YOUR appointments (never deleted)",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      },
      "get": {
        "description": "An appointment your client sent. Anything else answers 404\nappointment_not_found.",
        "operationId": "appointment_get_ext_v1_appointments_ext__external_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "external_id",
            "required": true,
            "schema": {
              "title": "External Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppointmentOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "scheduling.read"
            ]
          }
        ],
        "summary": "One of YOUR appointments, by your id",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      },
      "put": {
        "description": "Idempotent: the same external_id from your client always lands on the\nsame Norvya appointment (another client's ids are a separate namespace).\nThe appointment becomes an ordinary Norvya appointment, so the pre-visit\nbrief and your staff's screens see it. `start` must carry a UTC offset. A\nbooked appointment that started more than 24 hours ago is refused\n(booked_in_past: send history as completed, no_show or cancelled). An id\nstays bound to its first patient (409 external_id_member_mismatch). Your\nown change is never sent back to you as a webhook.",
        "operationId": "appointment_upsert_v1_appointments_ext__external_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "external_id",
            "required": true,
            "schema": {
              "title": "External Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppointmentIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppointmentOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "scheduling.write"
            ]
          }
        ],
        "summary": "Create or update an appointment by YOUR appointment id",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/appointments/{appointment_ref}": {
      "get": {
        "description": "The resource an appointment.booked / appointment.cancelled webhook\npoints to. Another practice's appointment, an unknown ref and one whose\npatient is no longer linked are the same 404 appointment_not_found.",
        "operationId": "appointment_get_v1_appointments__appointment_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "appointment_ref",
            "required": true,
            "schema": {
              "title": "Appointment Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppointmentOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "scheduling.read"
            ]
          }
        ],
        "summary": "One appointment of your practice",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/appointments/{appointment_ref}/video-link": {
      "post": {
        "description": "Through the app's own video path (telehealth_video.create_visit): the\nappointment's clinician hosts, the patient joins from the app, the room\nopens 15 minutes before and closes 60 minutes after the booked end.\nIdempotent: an open room for the appointment is returned (created false).\nRecording and transcription are off and cannot be turned on. 404\nappointment_not_found; 422 partner_appointment_required / host_required /\ninvalid_context; 503 video_not_activated (no BAA-covered vendor\nconfigured; a sandbox uses Norvya's simulated vendor).",
        "operationId": "appointment_video_link_v1_appointments__appointment_ref__video_link_post",
        "parameters": [
          {
            "in": "path",
            "name": "appointment_ref",
            "required": true,
            "schema": {
              "title": "Appointment Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoLinkBody",
                "default": {
                  "context": "general"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoLinkOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.video.write"
            ]
          }
        ],
        "summary": "Open a video room for an existing appointment",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/behavioral/caseload": {
      "get": {
        "description": "The therapy practice's caseload exactly as Norvya's staff screen orders\nit: PHQ-9 / GAD-7 / PCL-5 totals with baseline, latest and trend, response\nand remission where a source defines them, what is due, the not-improving\nprompt and homework counts. A patient who does not share mental health\nwith you is never listed (only counted in withheld_not_sharing). crisis.open\nmeans a questionnaire tripped the crisis gate: the patient already saw\ncrisis resources and your staff were notified in Norvya; follow your\ncrisis protocol (crisis.guidance). Not a 42 CFR Part 2 program; BAA on file.",
        "operationId": "behavioral_caseload_v1_behavioral_caseload_get",
        "parameters": [
          {
            "description": "active | ended | all",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "active",
              "description": "active | ended | all",
              "title": "Status",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TherapyCaseload"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "behavioral.read"
            ]
          }
        ],
        "summary": "Your measurement-based-care caseload (patients who share mental health with you)",
        "tags": [
          "behavioral"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/behavioral/cocm/episodes": {
      "post": {
        "description": "The registry's own enrolment (cocm_registry.enroll): one active episode\nper patient (409 already_enrolled), the care team named by staff_ref (each an\nactive clinician of your practice). Consent is recorded separately\n(POST .../consent). Norvya keeps the registry; it does not decide\neligibility or billing.",
        "operationId": "cocm_enroll_v1_behavioral_cocm_episodes_post",
        "parameters": [
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CocmEnrollIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CocmOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "behavioral.write"
            ]
          }
        ],
        "summary": "Enrol a patient in Collaborative Care or general BHI",
        "tags": [
          "behavioral"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/behavioral/cocm/episodes/{episode_ref}": {
      "get": {
        "description": "Status and flags, the consent state and how it was documented, the\ninitiating visit, discharge, and how often the episode was reviewed with the\npsychiatric consultant (never the recommendation or relapse-plan text).",
        "operationId": "cocm_episode_v1_behavioral_cocm_episodes__episode_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CocmOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "behavioral.read"
            ]
          }
        ],
        "summary": "One Collaborative Care / BHI episode: status, consent, reviews",
        "tags": [
          "behavioral"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/behavioral/cocm/episodes/{episode_ref}/consent": {
      "post": {
        "description": "Verbal or written consent your clinician documented, with both elements\nCMS describes (permission to consult specialists; told cost sharing\napplies) — 422 consent_elements_required otherwise. In-app consent is the\npatient's own act in Norvya and cannot be recorded here.",
        "operationId": "cocm_consent_v1_behavioral_cocm_episodes__episode_ref__consent_post",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CocmOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "behavioral.write"
            ]
          }
        ],
        "summary": "Record the patient's documented CoCM consent",
        "tags": [
          "behavioral"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/behavioral/cocm/episodes/{episode_ref}/discharge": {
      "post": {
        "description": "goals_met needs the relapse-prevention plan your clinician wrote (422\nrelapse_plan_required); 409 episode_closed for an episode already ended.",
        "operationId": "cocm_discharge_v1_behavioral_cocm_episodes__episode_ref__discharge_post",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DischargeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CocmOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "behavioral.write"
            ]
          }
        ],
        "summary": "Discharge a Collaborative Care / BHI episode",
        "tags": [
          "behavioral"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/behavioral/cocm/episodes/{episode_ref}/months/{month}": {
      "get": {
        "description": "Care-manager minutes (and other staff's, apart), consent in force, a\npsychiatric review and a rating scale in the month, the initiating visit\nand the six-month-break note, against the reference minutes CMS\nMLN909432 describes. status candidate_for_biller_review: never a charge, an\neligibility determination or a code attached to the patient. Needs\nbilling.read as well.",
        "operationId": "cocm_month_v1_behavioral_cocm_episodes__episode_ref__months__month__get",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "month",
            "required": true,
            "schema": {
              "title": "Month",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CocmMonth"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "behavioral.read"
            ]
          }
        ],
        "summary": "An episode's month as a candidate for your biller's review",
        "tags": [
          "behavioral"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/behavioral/cocm/registry": {
      "get": {
        "description": "The registry Norvya's staff screen shows, in its priority order, with\nthe flags it computes (crisis_open, not_improving, recommendation_pending,\nscale_overdue, no_recent_contact, consent_missing, consent_renewal_needed,\nteam_incomplete). Patients who do not share mental health with you are\ncounted, never shown; a substance-use target appears only when the patient\nshares substance-use information with you. Minutes: GET .../months/{month}\n(with billing.read) or GET /v1/billing/care-management?program=cocm.",
        "operationId": "cocm_registry_v1_behavioral_cocm_registry_get",
        "parameters": [
          {
            "description": "active | discharged | consent_withdrawn | all",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "active",
              "description": "active | discharged | consent_withdrawn | all",
              "title": "Status",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CocmRegistry"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "behavioral.read"
            ]
          }
        ],
        "summary": "Your Collaborative Care / BHI registry with each episode's status and flags",
        "tags": [
          "behavioral"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/behavioral/homework/{homework_ref}/end": {
      "post": {
        "description": "404 homework_not_found for another practice's assignment, a member no\nlonger linked or not sharing mental health with you.",
        "operationId": "homework_end_v1_behavioral_homework__homework_ref__end_post",
        "parameters": [
          {
            "in": "path",
            "name": "homework_ref",
            "required": true,
            "schema": {
              "title": "Homework Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/routers__partner_api_bh_onc__ClinicianIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HomeworkOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "behavioral.write"
            ]
          }
        ],
        "summary": "End an assignment",
        "tags": [
          "behavioral"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/billing/candidates": {
      "get": {
        "description": "Patients whose RECORDED data match the published CMS criteria for CCM,\nPCM, APCM (by level) or a possibly-due annual wellness visit, each with\nthe criteria met and the record each came from, what Norvya does not know\n(payer, QMB status, consent, enrolment elsewhere, Part B date, the\nclinician's judgement) and staff_must_confirm: true. For staff review,\nnot an eligibility determination; no code is attached to a patient and no\namount is shown. Patients already enrolled in the program are left out.",
        "operationId": "billing_candidates_v1_billing_candidates_get",
        "parameters": [
          {
            "description": "ccm | pcm | apcm | awv",
            "in": "query",
            "name": "program",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "ccm | pcm | apcm | awv",
              "title": "Program"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CandidateList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "billing.read"
            ]
          }
        ],
        "summary": "Patients whose recorded data match published CMS criteria: for staff review",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/billing/care-management": {
      "get": {
        "description": "Every patient with an enrolment overlapping the month or minutes filed\nunder a program, per program: enrolment and consent state, minutes (by\nactivity) and, for remote monitoring, device days per 30-day period,\nwhether the program's first published reference mark was reached, the\nmarks reached, what is still missing, and the program's reference codes.\nEach row is status candidate_for_biller_review: never a charge, an\neligibility determination or a code selected for the patient. The same\nevidence Norvya's staff month view shows (care_programs). Needs care\nmanagement enabled for your practice.",
        "operationId": "billing_care_management_v1_billing_care_management_get",
        "parameters": [
          {
            "description": "YYYY-MM on the practice's clock; default the current month.",
            "in": "query",
            "name": "month",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM on the practice's clock; default the current month.",
              "title": "Month"
            }
          },
          {
            "description": "ccm | pcm | chronic_pain | rpm | rtm | apcm | cocm | bhi | tcm",
            "in": "query",
            "name": "program",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "ccm | pcm | chronic_pain | rpm | rtm | apcm | cocm | bhi | tcm",
              "title": "Program"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CmMonth"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "billing.read"
            ]
          }
        ],
        "summary": "Care-management minutes and remote days per patient per program, for your biller",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-dyads/{dyad_ref}/contacts": {
      "post": {
        "description": "The staff contact log (care_dyad): date, kind, who it reached, minutes\nand after-hours, attributed to the member of your staff you name (422\nstaff_not_found). No free text. The beneficiary must still be your active\nmember sharing their medical history (else 404 care_dyad_not_found). The\nsame contact sent twice (date, kind, who, staff) returns the first with\ncreated false.",
        "operationId": "care_dyad_contact_v1_care_dyads__dyad_ref__contacts_post",
        "parameters": [
          {
            "in": "path",
            "name": "dyad_ref",
            "required": true,
            "schema": {
              "title": "Dyad Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DyadContactIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DyadContactOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "older_adults.write"
            ]
          }
        ],
        "summary": "Log a contact with one of your care dyads",
        "tags": [
          "older_adults"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites": {
      "get": {
        "description": "Every active site your organisation (a pharmacy or a care-facility\noperator) owns; never a site you only dispense to. site_type is assisted_living,\ngroup_home or nursing_home (site_types lists them). A nursing home also\ncarries licensure_kind (snf | nf | snf_nf: skilled nursing facility,\nnursing facility, or both) and licensed_beds as the operator recorded them\n(null when not recorded, and always null at other site types); Norvya\nverifies neither.",
        "operationId": "cs_sites_v1_care_sites_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.read"
            ]
          }
        ],
        "summary": "Your assisted living, group home and nursing home sites",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/attesting-staff": {
      "get": {
        "description": "The active staff the app lets admit residents and issue family access at\nthis site (care_sites.require_manage: at a pharmacy's site its admin,\nprovider or pharmacist; at a facility's site its admin or provider and the\nsite's managers), as staff_ref values with role and display name to map your own\nuser list to. Staff names are not patient data. Needs\ncare_sites.residents.write or care_sites.family.write.",
        "operationId": "cs_attesting_staff_v1_care_sites__site_ref__attesting_staff_get",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.residents.write"
            ]
          }
        ],
        "summary": "The staff who may attest an admission or a family invitation at a site",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/census": {
      "get": {
        "description": "care_site_living.site_census: residents per wing with today's\ndue-but-unrecorded doses (never \"missed\"), as-needed follow-ups waiting,\nevents in 24 hours, falls in 30 days, no vitals in the site's N days (a\nNorvya convention the site sets), open condition reports, rounds not\nrecorded. At a nursing home each resident's stay_type (short_stay |\nlong_stay, or null when not recorded) is included.",
        "operationId": "cs_census_v1_care_sites__site_ref__census_get",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.read"
            ]
          }
        ],
        "summary": "A site's census",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/condition-reports": {
      "get": {
        "operationId": "cs_condition_reports_v1_care_sites__site_ref__condition_reports_get",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "description": "active | open | acknowledged | closed | all",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "active",
              "description": "active | open | acknowledged | closed | all",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "description": "incident | change_of_condition",
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "incident | change_of_condition",
              "title": "Kind"
            }
          },
          {
            "in": "query",
            "name": "report_ref",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Report Ref"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.read"
            ]
          }
        ],
        "summary": "A site's incident and change-of-condition reports",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/emergency-preparedness": {
      "get": {
        "description": "preparedness.overview: what the SITE attested for each element, its\nhazards and the exercises it recorded. Never a statement that the site is\ncovered by or compliant with any rule (applicability says why). The\nidentified emergency roster is not exposed here.",
        "operationId": "cs_preparedness_v1_care_sites__site_ref__emergency_preparedness_get",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.read"
            ]
          }
        ],
        "summary": "A site's emergency-preparedness attestations",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/family/{family_access_ref}": {
      "delete": {
        "description": "care_site_living.revoke_family_access: an unclaimed code stops working\nand a claimed access's caregiver grant is retracted, so the family member's\nnext read is refused. 404 family_access_not_found; 409 already_revoked.",
        "operationId": "cs_family_revoke_v1_care_sites__site_ref__family__family_access_ref__delete",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "family_access_ref",
            "required": true,
            "schema": {
              "title": "Family Access Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.family.write"
            ]
          }
        ],
        "summary": "Revoke a family member's access (takes effect at once)",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/medication-incidents": {
      "get": {
        "operationId": "cs_med_incidents_v1_care_sites__site_ref__medication_incidents_get",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "description": "open | reviewed | all",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "open",
              "description": "open | reviewed | all",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "incident_ref",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Incident Ref"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.read"
            ]
          }
        ],
        "summary": "A site's medication incidents",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/residents": {
      "post": {
        "description": "care_sites.add_resident, the app's admission engine. The named staff\nmember (attested_by_staff_ref, 422 attesting_staff_not_found) attests the\nconsent basis; consent_attested must be true (422\nconsent_attestation_required; invalid_consent_basis). With member_ref the\npatient must be your member, and at a pharmacy's site share medicines with\nit (403 medications_not_shared). Without it, full_name (422 name_required)\nand your resident_id (422 resident_id_required) create a resident with no\nNorvya login, linked to your organisation with medicines shared. 409\nalready_resident (at this site) / already_resident_id (another person\nholds that ID with you; that answer carries the existing resident's\nmember_ref, so a retried admission reconciles - only ever for a member of\nYOUR organisation). The census lists each resident's resident_id. Audited\nas a consent acceptance naming the attesting staff member.",
        "operationId": "cs_resident_admit_v1_care_sites__site_ref__residents_post",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResidentAdmit"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.residents.write"
            ]
          }
        ],
        "summary": "Admit a resident (an existing patient, or one without a Norvya login)",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/residents/{member_ref}/care-plan": {
      "get": {
        "description": "care_site_living.plan_view: a Norvya list of everyday-support\ncategories with the support level staff entered (NOT a validated\ninstrument: validated is false), goals and review dates.",
        "operationId": "cs_care_plan_v1_care_sites__site_ref__residents__member_ref__care_plan_get",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.read"
            ]
          }
        ],
        "summary": "A resident's functional needs and service plan",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/residents/{member_ref}/condition-reports": {
      "post": {
        "description": "care_site_living.report_condition, the engine's escalation path\nunchanged: Norvya sends its generic alert to the site's nurses (or, with\nnone on staff, its managers and the pharmacy's staff) and the report waits\nfor a nurse, manager or the pharmacy to acknowledge it in the app. Not\nINTERACT and nobody's SBAR form (422 invalid_report_kind /\ninvalid_report_category / invalid_severity / invalid_report_request /\ndescription_required / invalid_date).",
        "operationId": "cs_condition_report_create_v1_care_sites__site_ref__residents__member_ref__condition_reports_post",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConditionReportCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.events.write"
            ]
          }
        ],
        "summary": "Report an incident or a change in a resident's condition",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/residents/{member_ref}/family": {
      "get": {
        "description": "care_site_living.family_list: every invitation for the resident at this\nsite with its status (invited, expired, active, revoked), basis and what it\nshares. The family member's name is never returned.",
        "operationId": "cs_family_list_v1_care_sites__site_ref__residents__member_ref__family_get",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.family.write"
            ]
          }
        ],
        "summary": "Family access issued for a resident",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "care_site_living.issue_family_access, the app's engine: basis resident\nor guardian (422 invalid_consent_basis), attested by the named staff\nmember (422 consent_attestation_required / attesting_staff_not_found),\nsomething shared (422 nothing_shared), a valid address that is not the\nresident's (422 invalid_email), one open invitation per address (409\nalready_invited). `code` is returned ONCE; Norvya also emails it with its\ngeneric wording (no resident, no facility, nothing about health; a\nsandbox sends nothing). The family member sees counts and dated event\ntypes, never notes or medicine names. 409 invite_declined_by_person when\nthe address declined your organisation's invitations; 429\ninvite_daily_cap_reached past the daily invitation cap.",
        "operationId": "cs_family_issue_v1_care_sites__site_ref__residents__member_ref__family_post",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FamilyIssue"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.family.write"
            ]
          }
        ],
        "summary": "Issue a family member read-only access to a resident",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/residents/{member_ref}/mar": {
      "get": {
        "operationId": "cs_mar_v1_care_sites__site_ref__residents__member_ref__mar_get",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.read"
            ]
          }
        ],
        "summary": "A resident's medication administration record for today",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/residents/{member_ref}/mar/administrations": {
      "post": {
        "description": "care_sites.record_staff_dose, the MAR function the site's staff use:\nthe slot must be on the resident's schedule today (422\nslot_not_scheduled / invalid_time / invalid_outcome; an as-needed\nmedicine goes through /mar/prn). Recording the same slot again replaces\nit. held and refused are kept apart from given, with the reason, and\nraise care_site.mar_exception.",
        "operationId": "cs_mar_administration_v1_care_sites__site_ref__residents__member_ref__mar_administrations_post",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarAdministration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.mar.write"
            ]
          }
        ],
        "summary": "Record a scheduled dose as given, held or refused",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/residents/{member_ref}/mar/prn": {
      "post": {
        "description": "care_sites.record_prn: only an as-needed medicine on the resident's\nschedule (422 not_as_needed / invalid_details); a follow-up is due in 60\nminutes.",
        "operationId": "cs_mar_prn_v1_care_sites__site_ref__residents__member_ref__mar_prn_post",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarPrn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.mar.write"
            ]
          }
        ],
        "summary": "Record an as-needed dose with its reason",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/residents/{member_ref}/mar/prn/{event_ref}/follow-up": {
      "post": {
        "operationId": "cs_mar_prn_followup_v1_care_sites__site_ref__residents__member_ref__mar_prn__event_ref__follow_up_post",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "event_ref",
            "required": true,
            "schema": {
              "title": "Event Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarPrnFollowup"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.mar.write"
            ]
          }
        ],
        "summary": "Record whether an as-needed dose worked",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/residents/{member_ref}/medication-incidents": {
      "post": {
        "description": "care_site_safety.report_incident: the site owner's reviewers (the\npharmacy, or at a facility site the facility and its linked pharmacy) get\nNorvya's generic alert and review it in the app (422 invalid_incident_type /\ninvalid_severity / description_required / invalid_date).",
        "operationId": "cs_med_incident_create_v1_care_sites__site_ref__residents__member_ref__medication_incidents_post",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MedIncidentCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.events.write"
            ]
          }
        ],
        "summary": "Report a medication incident",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/round-plans/{plan_ref}/checks": {
      "post": {
        "description": "care_site_living.record_check (409 already_recorded / no_round_due;\n422 invalid_round_outcome / invalid_slot / note_required for concern).",
        "operationId": "cs_round_check_v1_care_sites__site_ref__round_plans__plan_ref__checks_post",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "plan_ref",
            "required": true,
            "schema": {
              "title": "Plan Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoundCheck"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.events.write"
            ]
          }
        ],
        "summary": "Record a round check",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/care-sites/{site_ref}/rounds": {
      "get": {
        "description": "care_site_living.rounds_board: each facility-configured plan's slots\n(recorded / due / not_recorded / upcoming) and the shift lead's escalation\nlist. A slot with no check is NOT RECORDED, never \"missed\".",
        "operationId": "cs_rounds_v1_care_sites__site_ref__rounds_get",
        "parameters": [
          {
            "in": "path",
            "name": "site_ref",
            "required": true,
            "schema": {
              "title": "Site Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "hours",
            "required": false,
            "schema": {
              "default": 12,
              "maximum": 24,
              "minimum": 1,
              "title": "Hours",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "care_sites.read"
            ]
          }
        ],
        "summary": "A site's rounds board",
        "tags": [
          "care_sites"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/claims/imports": {
      "post": {
        "description": "Parses the file(s) in the request, matches each claim to exactly one of\nyour active members (member_ref, or the MBI / plan member id against the\ncoverage recorded for the member, by fingerprint; never by name or birth\ndate) and stages the matched claims. Nothing is attached until commit.\nMBIs, plan member ids and claim numbers are never stored. Treating\npractices and programme organisations with a BAA on file (409\nnot_a_medical_practice / claims_baa_required).",
        "operationId": "claims_import_upload_v1_claims_imports_post",
        "requestBody": {
          "content": {
            "application/x-ndjson": {
              "example": "{\"claim_id\":\"PLN-1002\",\"member_ref\":\"mr_3f9c1a0b7d2e4c6a8b1d0e2f\",\"service_from\":\"2026-08-09\",\"ndc_codes\":[\"00093-7214-01\"],\"part\":\"D\"}\n",
              "schema": {
                "type": "string"
              }
            },
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "type": "object"
              }
            },
            "text/csv": {
              "example": "claim_id,member_id,service_from,service_thru,dx_codes,procedure_codes,place_of_service,part\nPLN-1001,W123456789,2026-08-02,2026-08-02,E11.9;I10,99214,11,C\n",
              "schema": {
                "type": "string"
              }
            },
            "text/plain": {
              "example": "CUR_CLM_UNIQ_ID|BENE_MBI_ID|CLM_TYPE_CD|CLM_FROM_DT|CLM_THRU_DT|PRNCPL_DGNS_CD\nC0001|1EG4TE5MK73|60|2026-03-01|2026-03-06|I509\n",
              "schema": {
                "type": "string"
              }
            }
          },
          "description": "One claims file as the body (text/csv or text/plain for a pipe / comma / tab delimited CCLF or plan CSV, application/x-ndjson for plan NDJSON; ?filename= names it), or multipart/form-data with one or more `files` parts (e.g. CCLF1 + CCLF4 together). Generic plan shape: claim_id, member_ref | member_id | mbi, service_from, service_thru, dx_codes, procedure_codes, ndc_codes, place_of_service, part, setting, claim_type_code, paid_amount. At most 50 MB.",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimsImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "claims.import.write"
            ]
          }
        ],
        "summary": "Stage a claims import (CCLF or plan claims) and get its dry run",
        "tags": [
          "claims"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/claims/imports/{claims_import_ref}": {
      "get": {
        "description": "Imports YOUR client sent only (404 claims_import_not_found otherwise).\nCounts and row numbers only; no identifier or claim content.",
        "operationId": "claims_import_get_v1_claims_imports__claims_import_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "claims_import_ref",
            "required": true,
            "schema": {
              "title": "Claims Import Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimsImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "claims.import.write"
            ]
          }
        ],
        "summary": "One claims import: dry run, progress, result",
        "tags": [
          "claims"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/claims/imports/{claims_import_ref}/commit": {
      "post": {
        "description": "Attaches the staged claims in the background (poll GET, or subscribe\nto claims.import_completed). Members whose link ended since the dry run\nare dropped; a claim you sent before (same claim number) is replaced.\nClaims never change a member's self-reported conditions or medications.\n409 claims_import_not_staged / claims_import_commit_in_progress /\nclaims_import_nothing_to_commit / claims_baa_required (re-checked by the\nworker before the first write).",
        "operationId": "claims_import_commit_v1_claims_imports__claims_import_ref__commit_post",
        "parameters": [
          {
            "in": "path",
            "name": "claims_import_ref",
            "required": true,
            "schema": {
              "title": "Claims Import Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimsImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "claims.import.write"
            ]
          }
        ],
        "summary": "Commit a staged claims import",
        "tags": [
          "claims"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/claims/imports/{claims_import_ref}/discard": {
      "post": {
        "description": "Deletes the staged claims; the manifest (counts, codes, hash) stays.",
        "operationId": "claims_import_discard_v1_claims_imports__claims_import_ref__discard_post",
        "parameters": [
          {
            "in": "path",
            "name": "claims_import_ref",
            "required": true,
            "schema": {
              "title": "Claims Import Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimsImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "claims.import.write"
            ]
          }
        ],
        "summary": "Discard a staged claims import",
        "tags": [
          "claims"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/clinical/checks/gi-alarm": {
      "post": {
        "description": "The red-flag lane (emergency | urgent | soon | self_manage) for the\nalarm features present; it only ever escalates. Unknown keys are refused\n(422 unknown_alarm_item). Not a diagnosis and not an emergency service.",
        "operationId": "check_gi_alarm_v1_clinical_checks_gi_alarm_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GiAlarmIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/routers__partner_api_practice_plus__CheckOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.specialty.read"
            ]
          }
        ],
        "summary": "GI alarm-feature triage lane (stateless)",
        "tags": [
          "specialty"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/clinical/checks/lung-cancer-screening": {
      "post": {
        "description": "Adults 50-80 with at least 20 pack-years who smoke now or quit within\n15 years. Smoking history is not stored by Norvya, so this is not a care\ngap: send the values from your record. Nothing stored.",
        "operationId": "check_lung_screening_v1_clinical_checks_lung_cancer_screening_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LungScreeningIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/routers__partner_api_practice_plus__CheckOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.specialty.read"
            ]
          }
        ],
        "summary": "Lung-cancer screening eligibility (USPSTF 2021; stateless)",
        "tags": [
          "specialty"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/clinical/checks/spirometry": {
      "post": {
        "description": "FEV1/FVC (+ FEV1 and FVC % predicted from your own report) to\nobstruction and GOLD grade, the hub's own rule. No patient, nothing\nstored. A COPD diagnosis needs a post-bronchodilator test.",
        "operationId": "check_spirometry_v1_clinical_checks_spirometry_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SpirometryIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/routers__partner_api_practice_plus__CheckOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.specialty.read"
            ]
          }
        ],
        "summary": "Interpret spirometry values (GOLD criteria; stateless)",
        "tags": [
          "specialty"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/community-care/authorizations": {
      "get": {
        "operationId": "community_care_list_v1_community_care_authorizations_get",
        "parameters": [
          {
            "description": "va | ihs | tricare | other",
            "in": "query",
            "name": "agency",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "va | ihs | tricare | other",
              "title": "Agency"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "description": "Only rows with needs_attention.",
            "in": "query",
            "name": "attention",
            "required": false,
            "schema": {
              "default": false,
              "description": "Only rows with needs_attention.",
              "title": "Attention",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthorizationList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "programs.community_care.read"
            ]
          }
        ],
        "summary": "Your practice's community-care referrals and authorisations",
        "tags": [
          "programs"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/derm/classifier": {
      "get": {
        "description": "enabled false today, with the reason and the measured performance from\nthe model card. Needs derm.read or derm.classify. No patient data.",
        "operationId": "derm_classifier_v1_derm_classifier_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.classify"
            ]
          }
        ],
        "summary": "Whether the skin-lesion classifier is enabled, and its model card",
        "tags": [
          "derm_ai"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/derm/rechecks": {
      "get": {
        "description": "Watched lesions whose own recheck date has passed, for your active\nmembers who share skin scans with you (or one member with ?member_ref=).\nBeing overdue changes the urgency of the photograph, never an assessment;\nthe classifier's risk level is not used to order or shown.",
        "operationId": "derm_rechecks_v1_derm_rechecks_get",
        "parameters": [
          {
            "in": "query",
            "name": "member_ref",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Member Ref"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecheckList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.read"
            ]
          }
        ],
        "summary": "Your panel's lesion rechecks that are due (most overdue first)",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/derm/vocabulary": {
      "get": {
        "description": "What a client needs to build the severity and patch-test forms, with\neach instrument's source. Needs derm.read or derm.write. No patient data.",
        "operationId": "derm_vocabulary_v1_derm_vocabulary_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.read"
            ]
          }
        ],
        "summary": "Hurley stages, HS and acne sites, the IGA scale, patch-test grades and timepoints",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/documents/{document_ref}": {
      "get": {
        "description": "404 document_not_found for another organisation's document, a member\nno longer linked, or a kind your token or the patient's sharing does not\nallow.",
        "operationId": "document_get_v1_documents__document_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "document_ref",
            "required": true,
            "schema": {
              "title": "Document Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "documents.read"
            ]
          }
        ],
        "summary": "One document's metadata",
        "tags": [
          "records"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/documents/{document_ref}/content": {
      "get": {
        "description": "Rendered by the same builder as Norvya's own copy. A disclosure:\naudited as a PHI export before it is returned and refused (503) when the\naudit log is down. 422 document_language_unsupported for a language the\ndocument cannot be rendered in. Content-Language names the language used\n(a builder falls back to English when the script's font is missing).",
        "operationId": "document_content_v1_documents__document_ref__content_get",
        "parameters": [
          {
            "in": "path",
            "name": "document_ref",
            "required": true,
            "schema": {
              "title": "Document Ref",
              "type": "string"
            }
          },
          {
            "description": "An app language code from the document's `languages`; default its default_language.",
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "An app language code from the document's `languages`; default its default_language.",
              "title": "Lang"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              },
              "application/pdf": {},
              "text/html": {}
            },
            "description": "The document."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "documents.read"
            ]
          }
        ],
        "summary": "Download a document, in the patient's language where the document supports it",
        "tags": [
          "records"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/employer/challenges": {
      "get": {
        "description": "The allow-listed catalog (participation and activity items only) and,\nper challenge, joined / completed / completions per ISO week among members\nwith an active programme enrolment — each suppressed below min_cell. No\nleaderboard, no names, nothing finer than a week.",
        "operationId": "emp_challenges_v1_employer_challenges_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "employer.challenges.read"
            ]
          }
        ],
        "summary": "Your recognition challenges and their group counts",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "sponsor_challenges.create_challenge: an allow-listed catalog item, a 7 to\n92 day window not in the past, recognition 'badge' only, at most 10 open\nper programme. No push is sent to members (they find it in the app).",
        "operationId": "emp_challenge_create_v1_employer_challenges_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChallengeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "employer.challenges.write"
            ]
          }
        ],
        "summary": "Create a recognition challenge",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/employer/challenges/{challenge_ref}": {
      "patch": {
        "operationId": "emp_challenge_update_v1_employer_challenges__challenge_ref__patch",
        "parameters": [
          {
            "in": "path",
            "name": "challenge_ref",
            "required": true,
            "schema": {
              "title": "Challenge Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChallengePatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "employer.challenges.write"
            ]
          }
        ],
        "summary": "Change a challenge's window or switch it off",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/employer/challenges/{challenge_ref}/results": {
      "get": {
        "operationId": "emp_challenge_results_v1_employer_challenges__challenge_ref__results_get",
        "parameters": [
          {
            "in": "path",
            "name": "challenge_ref",
            "required": true,
            "schema": {
              "title": "Challenge Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "employer.challenges.read"
            ]
          }
        ],
        "summary": "One challenge's group counts",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/employer/glp1-program": {
      "get": {
        "description": "The programme's name, enrolment code (employees join in the app with it,\nafter reading exactly what you will and will not see), start date, your\ndrug-cost figure and the enrolled count, suppressed below the minimum\ngroup size. null when no programme is set up.",
        "operationId": "emp_program_v1_employer_glp1_program_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "employer.programs.read"
            ]
          }
        ],
        "summary": "Your GLP-1 programme set-up",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      },
      "put": {
        "operationId": "emp_program_save_v1_employer_glp1_program_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/routers__partner_api_employer_spa__ProgramIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "employer.programs.write"
            ]
          }
        ],
        "summary": "Create or update your GLP-1 programme",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/employer/glp1-program/enrollment-code": {
      "post": {
        "description": "The old code stops working at once; members already enrolled stay enrolled.",
        "operationId": "emp_program_code_v1_employer_glp1_program_enrollment_code_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "employer.programs.write"
            ]
          }
        ],
        "summary": "Regenerate your programme's enrolment code",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/employer/glp1-program/report": {
      "get": {
        "description": "employer_glp1_report.build_report: enrolment composition, persistence at\n12 / 24 / 52 weeks, weight and HbA1c change (mean, median, quartiles; no\nminimum or maximum), engagement, the value block (YOUR drug cost x the\nmeasured programme months — arithmetic on your input, never a savings or\nROI claim) and recognition-challenge counts. Every cell is suppressed below\nmin_cell, with complementary suppression; status too_few_enrolled below it.\nNo names, ids, medications, side effects or demographic breakdowns.",
        "operationId": "emp_program_report_v1_employer_glp1_program_report_get",
        "parameters": [
          {
            "description": "json | csv",
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "default": "json",
              "description": "json | csv",
              "title": "Format",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "employer.programs.read"
            ]
          }
        ],
        "summary": "Your GLP-1 programme's aggregate report (never a person)",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/good-faith-estimates/{estimate_ref}": {
      "get": {
        "description": "The issued snapshot (what the PDF shows), its SHA-256 and whether it\nstill verifies, and the timing status of its request. Another practice's\nestimate and an unknown ref are the same 404 estimate_not_found.",
        "operationId": "gfe_get_v1_good_faith_estimates__estimate_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "estimate_ref",
            "required": true,
            "schema": {
              "title": "Estimate Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GfeOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "billing.read"
            ]
          }
        ],
        "summary": "One Good Faith Estimate, with the issued document",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/good-faith-estimates/{estimate_ref}/cancel": {
      "post": {
        "description": "good_faith_estimate.cancel: the request closes (request_status\ncancelled); issued versions stay on file for the six-year retention and\nstay readable. 409 request_closed when already closed.",
        "operationId": "gfe_cancel_v1_good_faith_estimates__estimate_ref__cancel_post",
        "parameters": [
          {
            "in": "path",
            "name": "estimate_ref",
            "required": true,
            "schema": {
              "title": "Estimate Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/GfeCancelIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GfeOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "billing.estimates.write"
            ]
          }
        ],
        "summary": "Cancel the estimate request (the item will not take place)",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/good-faith-estimates/{estimate_ref}/pdf": {
      "get": {
        "description": "Rendered by the same builder as Norvya's own copy, in the patient's app\nlanguage (or ?lang=), with the English disclaimers kept as the binding\ntext. A disclosure: audited as an export before it is returned and refused\nwhen the audit log is down.",
        "operationId": "gfe_pdf_v1_good_faith_estimates__estimate_ref__pdf_get",
        "parameters": [
          {
            "in": "path",
            "name": "estimate_ref",
            "required": true,
            "schema": {
              "title": "Estimate Ref",
              "type": "string"
            }
          },
          {
            "description": "An app language code; default the patient's.",
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "An app language code; default the patient's.",
              "title": "Lang"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              },
              "application/pdf": {}
            },
            "description": "The estimate as a PDF in the patient's language."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "billing.read"
            ]
          }
        ],
        "summary": "The estimate as a PDF, in the patient's language",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/good-faith-estimates/{estimate_ref}/reissue": {
      "post": {
        "description": "A new version for a change in the items or charges, or after a\nreschedule (good_faith_estimate.issue: the same builder and §149.610(c)\nrequired-contents check as the first issue; a refusal records nothing).\nThe previous version is kept, marked superseded, never edited; the PDF of\nthe new version is rendered on request like any other. 409 request_closed\nfor a cancelled request, 409 estimate_superseded for an older version.",
        "operationId": "gfe_reissue_v1_good_faith_estimates__estimate_ref__reissue_post",
        "parameters": [
          {
            "in": "path",
            "name": "estimate_ref",
            "required": true,
            "schema": {
              "title": "Estimate Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GfeReissueIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GfeOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "billing.estimates.write"
            ]
          }
        ],
        "summary": "Issue a new version of a Good Faith Estimate",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/good-faith-estimates/{estimate_ref}/reschedule": {
      "post": {
        "description": "good_faith_estimate.reschedule: the §149.610(b)(1)(vi) clock restarts\nfrom scheduled_on and the current version then needs a new one (timing\nstatus reissue_needed): POST .../reissue next. 422\nservice_date_before_scheduling, scheduled_on_in_future; 409 request_closed.",
        "operationId": "gfe_reschedule_v1_good_faith_estimates__estimate_ref__reschedule_post",
        "parameters": [
          {
            "in": "path",
            "name": "estimate_ref",
            "required": true,
            "schema": {
              "title": "Estimate Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GfeRescheduleIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GfeOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "billing.estimates.write"
            ]
          }
        ],
        "summary": "Record that the scheduled item was rescheduled",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/gym/engagement-vs-results": {
      "get": {
        "description": "Members who share activity and body composition, split at the median\nnumber of active days over 90 days, with each tier's average fat-loss\nquality score and weight lost. Locked (available false, reason building)\nuntil 10 members share; a tier with fewer than 5 members with the outcome\nis not compared. An association, not proof.",
        "operationId": "gym_engagement_vs_results_v1_gym_engagement_vs_results_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EngagementResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "fitness.analytics.read"
            ]
          }
        ],
        "summary": "Do your more-engaged members get better results? (aggregate)",
        "tags": [
          "fitness"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/gym/retention": {
      "get": {
        "description": "Active in 7 / 30 days, a weekly active trend (8 weeks), and the share of\nmembers still active 4, 8 and 12 weeks after joining, against the\npre-Norvya retention baseline your organisation entered in Norvya. Members\nwho do not share activity are counted only as not_sharing. Counts from 1\nto min_cell - 1 are withheld (complementary cells too). The windows are the\nengine's fixed ones; there is no period parameter.",
        "operationId": "gym_retention_v1_gym_retention_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetentionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "fitness.analytics.read"
            ]
          }
        ],
        "summary": "Member retention against your own baseline (aggregate, small cells withheld)",
        "tags": [
          "fitness"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/hospice/census": {
      "get": {
        "description": "Every patient on service (or discharged, or all): election date, the\nbenefit period with its recertification and face-to-face dates (arithmetic\nfrom your recorded dates), level of care, care site, length of stay, IDG\nreview status and discharge. Never a prognosis or an eligibility statement.",
        "operationId": "hospice_census_v1_hospice_census_get",
        "parameters": [
          {
            "description": "active | discharged | all",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "active",
              "description": "active | discharged | all",
              "title": "Status",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospice.read"
            ]
          }
        ],
        "summary": "Your hospice census",
        "tags": [
          "hospice"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/hospice/idg/due": {
      "get": {
        "description": "Patients whose plan-of-care review is due within `within_days` or\noverdue: the last recorded review + 15 calendar days (42 CFR 418.56(d)),\nor the election date + 15 when none is recorded.",
        "operationId": "hospice_idg_due_v1_hospice_idg_due_get",
        "parameters": [
          {
            "in": "query",
            "name": "within_days",
            "required": false,
            "schema": {
              "default": 3,
              "maximum": 15,
              "minimum": 0,
              "title": "Within Days",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospice.read"
            ]
          }
        ],
        "summary": "IDG plan-of-care reviews due",
        "tags": [
          "hospice"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/hospice/patients/{member_ref}": {
      "get": {
        "description": "The latest admission at your agency: levels of care over time, the\ncertification events your staff recorded, review dates (never the notes),\nand — with hospice.visits.read — the visits.",
        "operationId": "hospice_patient_v1_hospice_patients__member_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospice.read"
            ]
          }
        ],
        "summary": "One patient's hospice record",
        "tags": [
          "hospice"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/hospice/patients/{member_ref}/visits": {
      "get": {
        "operationId": "hospice_patient_visits_v1_hospice_patients__member_ref__visits_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospice.visits.read"
            ]
          }
        ],
        "summary": "One patient's hospice visits",
        "tags": [
          "hospice"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/hospice/visits": {
      "get": {
        "description": "Visits in the window by discipline with their state: upcoming,\ncompleted, missed (recorded not done), not_recorded (past, nothing\nrecorded — never counted as missed) or cancelled.",
        "operationId": "hospice_visits_v1_hospice_visits_get",
        "parameters": [
          {
            "description": "YYYY-MM-DD",
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD",
              "title": "From"
            }
          },
          {
            "description": "YYYY-MM-DD; at most 92 days after from",
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD; at most 92 days after from",
              "title": "To"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospice.visits.read"
            ]
          }
        ],
        "summary": "Your agency's visit schedule",
        "tags": [
          "hospice"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/hospital-at-home/episodes": {
      "get": {
        "description": "Episodes of patients still linked to your hospital, newest admission\nfirst, with contact counts (completed / missed / unrecorded: a contact\nwith no completion and no missed reason is unrecorded, never missed) and\ntoday's completed contacts. Norvya determines no eligibility and does not\ngrade a programme against its own schedule.",
        "operationId": "hah_episodes_v1_hospital_at_home_episodes_get",
        "parameters": [
          {
            "description": "active | ended | all",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "active",
              "description": "active | ended | all",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HahEpisodeList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospital_at_home.read"
            ]
          }
        ],
        "summary": "Your hospital-at-home episodes",
        "tags": [
          "hospital_care"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "Opens the episode exactly as the staff screen does: admission from the\nemergency department or an inpatient bed only, all three attestations\n(your admitting clinician's, recorded as such; Norvya determines none of\nthem) true, one open episode per patient (409 episode_already_open), not\ndated in the future. The patient must be actively linked to your hospital\n(404 member_not_found). Mirrored into days at home as zero days away.",
        "operationId": "hah_enrol_v1_hospital_at_home_episodes_post",
        "parameters": [
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HahEnrolBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HahEpisodeDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospital_at_home.write"
            ]
          }
        ],
        "summary": "Open a hospital-at-home episode",
        "tags": [
          "hospital_care"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/hospital-at-home/episodes/{episode_ref}": {
      "get": {
        "description": "The episode with every contact (scheduled / completed / missed /\nunrecorded), one row per day against the protocol your programme recorded\n(meets_protocol null when none was recorded), and the escalations with\ntheir response times. 404 episode_not_found for an episode that is not\nyours or whose patient's link is no longer live (one answer for both).",
        "operationId": "hah_episode_v1_hospital_at_home_episodes__episode_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HahEpisodeDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospital_at_home.read"
            ]
          }
        ],
        "summary": "One hospital-at-home episode: contacts, daily rollup, escalations",
        "tags": [
          "hospital_care"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/hospital-at-home/episodes/{episode_ref}/close": {
      "post": {
        "description": "Ends the episode (409 episode_already_ended; 422 invalid_end_reason,\ndate_in_future, end_before_start). died is mirrored into days at home as a\ndeath event, exactly as the staff screen does.",
        "operationId": "hah_close_v1_hospital_at_home_episodes__episode_ref__close_post",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HahCloseBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HahEpisodeDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospital_at_home.write"
            ]
          }
        ],
        "summary": "Close a hospital-at-home episode",
        "tags": [
          "hospital_care"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/hospital-at-home/episodes/{episode_ref}/news2": {
      "get": {
        "description": "Every observation round, newest first (at most 50): the vital signs as\nrecorded, the NEWS2 score and band, or why the round could not be scored\n(incomplete, stale, age or pregnancy exclusion: stored, never scored as\nzero); the latest round re-scored against now (a fresh round goes stale\nafter max_age_minutes); the trend; and the alert level the care team was\ngiven. NEWS2 is a trigger for clinical review, not a diagnosis.",
        "operationId": "hah_news2_v1_hospital_at_home_episodes__episode_ref__news2_get",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/News2Response"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospital_at_home.read"
            ]
          }
        ],
        "summary": "The episode's NEWS2 observation timeline",
        "tags": [
          "hospital_care"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/instrument-requests/batch": {
      "get": {
        "description": "The batches THIS client started for your organisation (no member data).",
        "operationId": "instrument_batch_list_v1_instrument_requests_batch_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "instruments.request"
            ]
          }
        ],
        "summary": "Your caseload batches, newest first",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "One requestable instrument to up to 500 of your active members\n(member_refs) or a cohort: all_active, care_program (active enrolments in\none programme) or worklist_finding (patients with that finding in your\nlatest completed worklist run). Sent asynchronously with Norvya's own\ngeneric notification, one request per member (a member who already has\nyour request for it pending gets no second one; members who muted your\norganisation are refused). Each member answers in the app, where the\ncrisis gate runs first. Poll the status_url (batch_ref) or subscribe to\ninstrument.batch_dispatched; completions arrive as instrument.completed.\nIdempotent with external_id.",
        "operationId": "instrument_batch_start_v1_instrument_requests_batch_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "instruments.request"
            ]
          }
        ],
        "summary": "Ask a caseload to complete a questionnaire",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/instrument-requests/batch/{batch_ref}": {
      "get": {
        "description": "Progress (requested, already pending, refused, completed) and an\naggregate (completed, positive screens, crisis flags) with small cells\nwithheld. With instruments.read as well: the per-member list (member_ref,\noutcome, status, and the score band, positive screen and crisis_flag only\nwhere the member shares that instrument's results with you). crisis_flag\ntrue means the patient already saw crisis resources and your staff were\nnotified in Norvya: follow your crisis protocol (crisis_guidance).",
        "operationId": "instrument_batch_get_v1_instrument_requests_batch__batch_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "batch_ref",
            "required": true,
            "schema": {
              "title": "Batch Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "instruments.request"
            ]
          }
        ],
        "summary": "A caseload batch: progress and results",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/instruments": {
      "get": {
        "description": "Norvya's validated instrument library (scored server-side), with the\nversion, the licence record and whether the wording is English-only.\n`clinician_rated` lists the clinician-rated measures (recorded with POST\n/v1/patients/{member_ref}/clinician-ratings where recordable);\n`not_requestable` lists every other questionnaire Norvya supports with\nthe reason (parent-completed child screens, feature flows with their own\nred-flag checks, licences this deployment does not hold, specialty-hub\nchecks, crisis triage checks). Treating practices only;\ninstruments.request or instruments.read.",
        "operationId": "instruments_list_v1_instruments_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstrumentList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "instruments.request"
            ]
          }
        ],
        "summary": "Questionnaires you may request",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/invites": {
      "get": {
        "description": "Newest first. member_ref appears once the person joined and while they\nstay linked. No address, name or code is ever returned here.",
        "operationId": "invite_list_v1_invites_get",
        "parameters": [
          {
            "description": "sent | not_sent | send_failed | opened | joined | expired | revoked | declined",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "sent | not_sent | send_failed | opened | joined | expired | revoked | declined",
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.invite"
            ]
          }
        ],
        "summary": "Your invitations",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "Norvya emails its own invitation (your organisation's name and\nbranding, the person's language) with a link and a one-time code that open\nthe app's join screen. The person signs up or signs in and chooses there\nwhat to share with you; nothing is pre-granted. The answer is the same\nwhether or not the address already has a Norvya account. An open\ninvitation to the same address is returned instead of a new one\n(deduplicated: true). A phone number is recorded but never texted by\nNorvya: with no email, deliver join_url through your own consented channel.\nSandbox: recorded, never emailed (simulated: true); use simulate-join.",
        "operationId": "invite_create_v1_invites_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteCreated"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.invite"
            ]
          }
        ],
        "summary": "Invite a person to join your organisation on Norvya",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/invites/{invite_ref}": {
      "get": {
        "operationId": "invite_get_v1_invites__invite_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "invite_ref",
            "required": true,
            "schema": {
              "title": "Invite Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.invite"
            ]
          }
        ],
        "summary": "One invitation's status",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/invites/{invite_ref}/revoke": {
      "post": {
        "description": "Its code stops working at once. Idempotent; a joined invitation cannot\nbe revoked (409 invite_already_joined: the member leaves from the app).",
        "operationId": "invite_revoke_v1_invites__invite_ref__revoke_post",
        "parameters": [
          {
            "in": "path",
            "name": "invite_ref",
            "required": true,
            "schema": {
              "title": "Invite Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.invite"
            ]
          }
        ],
        "summary": "Revoke an invitation",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/invites/{invite_ref}/simulate-join": {
      "post": {
        "description": "Sandbox credentials only (403 sandbox_only otherwise). Creates a\nsynthetic member (HTEST labels), links it as the app's join would, marks\nthe invitation joined and queues member.joined.",
        "operationId": "invite_simulate_join_v1_invites__invite_ref__simulate_join_post",
        "parameters": [
          {
            "in": "path",
            "name": "invite_ref",
            "required": true,
            "schema": {
              "title": "Invite Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatedJoin"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.invite"
            ]
          }
        ],
        "summary": "Sandbox: a synthetic member joins through this invitation",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/join-codes": {
      "get": {
        "operationId": "join_code_list_v1_join_codes_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JoinCodeList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.invite"
            ]
          }
        ],
        "summary": "Your join codes",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "A code (and a join_url) to print or send yourself. A person enters it on\nthe app's join screen exactly like your clinic code and chooses what to\nshare. Optional expiry and use limit; at most 50 live codes.",
        "operationId": "join_code_create_v1_join_codes_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/JoinCodeIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JoinCodeOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.invite"
            ]
          }
        ],
        "summary": "Create a printable join code for your organisation",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/join-codes/{code_ref}/revoke": {
      "post": {
        "operationId": "join_code_revoke_v1_join_codes__code_ref__revoke_post",
        "parameters": [
          {
            "in": "path",
            "name": "code_ref",
            "required": true,
            "schema": {
              "title": "Code Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JoinCodeOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.invite"
            ]
          }
        ],
        "summary": "Revoke a join code",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/join-codes/{code_ref}/simulate-join": {
      "post": {
        "operationId": "join_code_simulate_join_v1_join_codes__code_ref__simulate_join_post",
        "parameters": [
          {
            "in": "path",
            "name": "code_ref",
            "required": true,
            "schema": {
              "title": "Code Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatedJoin"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.invite"
            ]
          }
        ],
        "summary": "Sandbox: a synthetic member joins with this code",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/medspa/adverse-events": {
      "get": {
        "description": "Confirmed events (recorded by staff or through the API), drafts a\npatient's warning-sign check-in created (a clinician confirms or dismisses\nthem in the app) and dismissed drafts with the reason. from / to filter on\nthe date the event was recorded (default the last 90 days).",
        "operationId": "spa_events_v1_medspa_adverse_events_get",
        "parameters": [
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "From"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "To"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "all",
              "pattern": "^(all|draft|confirmed|dismissed)$",
              "title": "Status",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.aftercare.read"
            ]
          }
        ],
        "summary": "Adverse events after aesthetic treatments",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/medspa/adverse-events/{event_ref}": {
      "get": {
        "operationId": "spa_event_v1_medspa_adverse_events__event_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "event_ref",
            "required": true,
            "schema": {
              "title": "Event Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.aftercare.read"
            ]
          }
        ],
        "summary": "One adverse event",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/medspa/clearances": {
      "get": {
        "description": "med_spa_clearance: each intake's category, status (awaiting_review |\nreviewed | expired), the screen's contraindication / precaution counts and\nthe supervising provider's decision with its expiry (a practice setting).\nThe screen is never a clearance: only a provider's decision makes one.",
        "operationId": "spa_clearances_v1_medspa_clearances_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "all",
              "pattern": "^(all|awaiting_review|reviewed|expired)$",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "member_ref",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Member Ref"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.clearance.read"
            ]
          }
        ],
        "summary": "Treatment-clearance intakes",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/medspa/clearances/{clearance_ref}": {
      "get": {
        "description": "Every flag the screen raised (item, severity, reason, the primary\nsource it rests on with its verbatim quote, and any disagreeing source),\nthe decision, its note and the deciding clinician as a staff_ref. The\nmember's raw answers and medication details stay in the app.",
        "operationId": "spa_clearance_v1_medspa_clearances__clearance_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "clearance_ref",
            "required": true,
            "schema": {
              "title": "Clearance Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.clearance.read"
            ]
          }
        ],
        "summary": "One clearance intake: flags, reasons, sources and the decision",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/medspa/glp1-oversight": {
      "get": {
        "description": "glp1_oversight.roster, the staff oversight screen's own engine: each\npatient on a GLP-1 / GIP medicine whose medication data they share with\nyour practice (the share_medications switch; others are not listed), the\ntherapy and dose as recorded, start date, last injection logged, weight\ntrend, latest HbA1c / eGFR / creatinine, diabetes monitoring status and\nthe live findings, ranked as on the staff screen. Each finding quotes the\nFDA prescribing information verbatim with its URL (citations[]; a plateau\nis a Norvya convention and says so). Every rule is pending clinician\nsign-off. Never a dose suggestion or a prescribing recommendation.",
        "operationId": "spa_glp1_oversight_v1_medspa_glp1_oversight_get",
        "parameters": [
          {
            "description": "urgent | high | medium | low: only members with a finding at it",
            "in": "query",
            "name": "severity",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "urgent | high | medium | low: only members with a finding at it",
              "title": "Severity"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.glp1_oversight.read"
            ]
          }
        ],
        "summary": "GLP-1 oversight roster for your medical director",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/medspa/glp1-oversight/{member_ref}": {
      "get": {
        "description": "The same row as on the roster. 404 member_not_on_glp1_roster when the\npatient is not on it — not on a GLP-1, or not sharing medication data with\nyour practice: the two read the same, on purpose.",
        "operationId": "spa_glp1_oversight_member_v1_medspa_glp1_oversight__member_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.glp1_oversight.read"
            ]
          }
        ],
        "summary": "One patient's GLP-1 oversight row",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/medspa/members/{member_ref}/adverse-events": {
      "post": {
        "description": "med_spa_aftercare.create_event: recorded as confirmed (the practice\nreporting it), its vocabulary validated by the engine, optionally tied to\none of the patient's treatments here. Fires medspa.adverse_event_reported\nto your other subscribed endpoints.",
        "operationId": "spa_event_create_v1_medspa_members__member_ref__adverse_events_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdverseEventIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.aftercare.write"
            ]
          }
        ],
        "summary": "Report an adverse event after an aesthetic treatment",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/medspa/members/{member_ref}/photos": {
      "get": {
        "description": "med_spa_photos: each active photo's view, phase, area, date, the\ntreatment it belongs to, and its consent flags (member_visible,\nmarketing_consent: only the patient grants marketing). Image bytes are not\nserved (image: null) — Norvya has no signed short-lived URL for aesthetic\nphotos, and they are never sent to a model.",
        "operationId": "spa_photos_v1_medspa_members__member_ref__photos_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.photos.read"
            ]
          }
        ],
        "summary": "A patient's photo timeline (metadata only)",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/medspa/members/{member_ref}/treatments": {
      "get": {
        "description": "Each treatment (category, areas, date, product, quantity, lot, treating\nclinician as staff_ref, consent on file) with its aftercare plan: the\nscheduled check-ins (the practice's own days for the category, else\nNorvya's default 1 / 3 / 14 — a convention, not a clinical standard), the\nwarning signs the patient reported and any alert (never closed by time).",
        "operationId": "spa_member_treatments_v1_medspa_members__member_ref__treatments_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.aftercare.read"
            ]
          }
        ],
        "summary": "A patient's aesthetic treatments and aftercare plans",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "med_spa_aftercare.create_treatment: its validation (category, areas,\ndate within the last 365 days and not in the future, units), then the\ncheck-ins are scheduled and the patient is reminded by Norvya's generic\npush when one is due.",
        "operationId": "spa_treatment_create_v1_medspa_members__member_ref__treatments_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TreatmentIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.aftercare.write"
            ]
          }
        ],
        "summary": "Record an aesthetic treatment (schedules its aftercare check-ins)",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/medspa/retreatment-due": {
      "get": {
        "description": "med_spa_retreatment.compute_items: the latest active treatment per\npatient, category and area, due on the interval YOUR practice saved (a\npractice setting, not clinical guidance; a category without one is never\ndue). reminders_opted_out = the patient asked this practice for no\nretreatment reminders.",
        "operationId": "spa_retreatment_due_v1_medspa_retreatment_due_get",
        "parameters": [
          {
            "description": "comma list of not_due | due_soon | due | overdue (default due_soon,due,overdue)",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "comma list of not_due | due_soon | due | overdue (default due_soon,due,overdue)",
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.aftercare.read"
            ]
          }
        ],
        "summary": "Patients whose retreatment may be due, on your practice's own intervals",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/medspa/treatments/{treatment_ref}": {
      "get": {
        "operationId": "spa_treatment_v1_medspa_treatments__treatment_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "treatment_ref",
            "required": true,
            "schema": {
              "title": "Treatment Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "medspa.aftercare.read"
            ]
          }
        ],
        "summary": "One treatment and its aftercare plan",
        "tags": [
          "medspa"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members": {
      "get": {
        "description": "Active members linked to your organisation, as opaque member_refs (plus\nyour own id when the member is linked through a system sync). Nothing else\nabout the member is returned here.",
        "operationId": "list_members_v1_members_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembersResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.read"
            ]
          }
        ],
        "summary": "List your organisation's linked members",
        "tags": [
          "platform"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/at-risk": {
      "get": {
        "description": "Your active members ranked for attention: churn risk (from club visits\nwhen your booking system is linked, else app activity), gym-safe flags and\nthe one priority action from trainer guidance. Each member's sharing\nswitches for your organisation apply: without activity sharing a member has\nno churn, no last-active date and no activity flags. Never a diagnosis,\nmedication, lab value or reading. One chained audit row per call names the\nmembers returned. 404 member_not_found for a member_ref that is not yours.",
        "operationId": "members_at_risk_v1_members_at_risk_get",
        "parameters": [
          {
            "description": "high | medium | low",
            "in": "query",
            "name": "level",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "high | medium | low",
              "title": "Level"
            }
          },
          {
            "description": "One member (mr_... or ext:...).",
            "in": "query",
            "name": "member_ref",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "One member (mr_... or ext:...).",
              "title": "Member Ref"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 25,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RosterResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "fitness.roster.read"
            ]
          }
        ],
        "summary": "At-risk roster: your members ranked for a trainer's attention",
        "tags": [
          "fitness"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/guidance": {
      "get": {
        "description": "Ranked, gym-safe actions for a trainer: what to program, how hard to\npush, what to avoid. Filtered by what the member shares with your\norganisation; never names a diagnosis, medication, lab value or reading.\n404 member_not_found for anyone who is not your active member.",
        "operationId": "member_guidance_v1_members__member_ref__guidance_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuidanceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "fitness.guidance.read"
            ]
          }
        ],
        "summary": "Trainer guidance for one member",
        "tags": [
          "fitness"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/instrument-requests": {
      "post": {
        "description": "Norvya sends its own generic notification (\"Questionnaire from your\ncare team\"; no instrument name in the push) and shows the questionnaire in\nthe app. The patient answers in Norvya, never through this API, so a crisis\nanswer reaches the patient's crisis resources and your staff first.\nIdempotent with external_id. 409 member_not_accepting_requests when the\npatient muted your organisation.",
        "operationId": "instrument_request_v1_members__member_ref__instrument_requests_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstrumentRequestIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstrumentRequestOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "instruments.request"
            ]
          }
        ],
        "summary": "Ask a patient to complete a questionnaire",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/instrument-requests/{response_ref}/simulate-completion": {
      "post": {
        "description": "Sandbox organisations only (404 elsewhere). Scored server-side like a\nreal submission; crisis_example (PHQ-9) shows what a crisis-flagged\nresponse looks like. No notification or push is sent; your\ninstrument.completed webhook fires as it would live.",
        "operationId": "instrument_simulate_v1_members__member_ref__instrument_requests__response_ref__simulate_completion_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "response_ref",
            "required": true,
            "schema": {
              "title": "Response Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/SimulateIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstrumentResponseOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "instruments.request"
            ]
          }
        ],
        "summary": "Sandbox: make a synthetic patient complete a requested questionnaire",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/instrument-responses": {
      "get": {
        "description": "Total, severity band, positive-screen flag and subscales with the\ninstrument version and completion time. Never item-level answers.\nMental-health questionnaires only while the patient shares mental health\nwith you, others while they share medical history; pending requests are\nyours only. crisis_flag true means Norvya's crisis gate fired in the app:\nfollow your practice's crisis protocol (crisis_guidance).",
        "operationId": "instrument_responses_v1_members__member_ref__instrument_responses_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "description": "submitted | requested | all",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "submitted",
              "description": "submitted | requested | all",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "response_ref",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 64,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Response Ref"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstrumentResponses"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "instruments.read"
            ]
          }
        ],
        "summary": "A patient's questionnaire scores",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/messages": {
      "get": {
        "description": "Oldest first (the newest `limit`), as your staff see it in Norvya:\nmessages from your organisation (sent_via partner_api or norvya) and the\nmember's replies. Staff names are never returned. Reading never marks a\nmessage read. Audited as a disclosure.",
        "operationId": "member_messages_v1_members__member_ref__messages_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "description": "ISO 8601: only messages after this instant.",
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "ISO 8601: only messages after this instant.",
              "title": "Since"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Conversation"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "messages.read"
            ]
          }
        ],
        "summary": "Your organisation's conversation with a member",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "The message lands in your organisation's conversation with the member\n(the one your staff use in Norvya) and the member gets Norvya's generic\nnotification (\"Message from your care team\"), never your text, through\ntheir own settings: push, or a text only if they opted in for you; quiet\nhours and caps apply. Plain text, at most 2000 characters, no attachments\nin v1. 409 member_messages_off when the member turned messages from you\noff; 429 member_message_cap_reached (PARTNER_MESSAGES_PER_MEMBER_PER_DAY,\ndefault 5 a day) or message_daily_cap_reached. Sandbox / synthetic\nmembers: written, never sent (delivery simulated).",
        "operationId": "member_message_send_v1_members__member_ref__messages_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageSent"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "messages.write"
            ]
          }
        ],
        "summary": "Send a member a secure in-app message",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/messages/simulate-reply": {
      "post": {
        "description": "Sandbox credentials only (403 sandbox_only otherwise). A fixed reply from\nthe synthetic member through the same hook every member message passes, so\nmessage.received fires exactly as it would in production.",
        "operationId": "member_message_simulate_reply_v1_members__member_ref__messages_simulate_reply_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "messages.write"
            ]
          }
        ],
        "summary": "Sandbox: the synthetic member replies",
        "tags": [
          "engagement"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/nudge": {
      "post": {
        "description": "Norvya sends its standard re-engagement push (\"We miss you at the gym\" /\n\"N days since your last session\", opening Gym Mode) — Norvya's wording,\nnever yours: the optional reason is one of a fixed list and is only\nrecorded. At most one nudge per member per 14 days (the same dedup as the\nin-app trainer button and Norvya's own retention job), and the member's\nnotification limits apply. {sent: false, reason} explains a skip:\nrecently_nudged, no_device_token, not_sharing_activity, suppressed,\nsend_failed, in_progress. Gym, fitness and personal-training organisations\nonly (409 not_a_fitness_organisation).",
        "operationId": "member_nudge_v1_members__member_ref__nudge_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/NudgeBody"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NudgeResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "fitness.nudge.write"
            ]
          }
        ],
        "summary": "Ask Norvya to send a member its re-engagement push",
        "tags": [
          "fitness"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/observations": {
      "post": {
        "description": "Vitals, lab results and body composition, one outcome per item\n(created | duplicate | rejected with a machine code). Practices (BAA on\nfile): every type, recorded as your practice's own record. Gyms: body\ncomposition and weight / height / heart rate / blood pressure, while the\nmember shares body measurements with you; never labs. Units are\nconverted, never assumed; implausible values are refused. Idempotent per\nitem by external_id.",
        "operationId": "observations_write_v1_members__member_ref__observations_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ObservationsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WriteResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "observations.write"
            ]
          }
        ],
        "summary": "Write measurements to a member's record",
        "tags": [
          "member_data"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/observations/{external_id}": {
      "delete": {
        "description": "Removes the rows YOUR item created; their observations are marked\nentered-in-error in Norvya's ledger. Another source's data is never\ntouched. The external_id is not reusable afterwards.",
        "operationId": "observations_retract_v1_members__member_ref__observations__external_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "external_id",
            "required": true,
            "schema": {
              "title": "External Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetractResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "observations.write"
            ]
          }
        ],
        "summary": "Retract one of your own measurement items",
        "tags": [
          "member_data"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/trainer-notes": {
      "get": {
        "description": "Notes written by your trainers in Norvya's gym screen or through this\nAPI, newest first (at most 200). The member does not see trainer notes.\nAuthors' names are not returned.",
        "operationId": "trainer_notes_v1_members__member_ref__trainer_notes_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotesResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "fitness.notes.read"
            ]
          }
        ],
        "summary": "Your trainers' notes about a member",
        "tags": [
          "fitness"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "A plain-text training note (at most 2000 characters), kept as your\norganisation's record and shown to your trainers in Norvya's gym screen;\nthe member does not see it. Training notes only: do not record medical\ninformation. Attributed in Norvya to this client (shown to trainers as\n\"Partner system: <client name>\"), never to a person.",
        "operationId": "trainer_note_add_v1_members__member_ref__trainer_notes_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/routers__partner_api_fitness_hospital__NoteIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoteCreated"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "fitness.notes.write"
            ]
          }
        ],
        "summary": "Add a trainer note about a member",
        "tags": [
          "fitness"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/training": {
      "get": {
        "description": "What the member's own Progress card shows, for their trainer: completed\nworkouts, estimated one-rep max per lift with its trend and series, weekly\nhard sets per muscle group against the volume landmarks, and the\ntraining-load ratio, while the member shares activity with you. The\nreadiness band (ready / caution / rest) only while they share wearables;\nthe recovery score behind it, and any reading, diagnosis or medicine,\nnever. withheld lists what the member keeps from you.",
        "operationId": "member_training_v1_members__member_ref__training_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrainingResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "fitness.training.read"
            ]
          }
        ],
        "summary": "A member's training: workouts, estimated 1RM per lift, weekly sets, load",
        "tags": [
          "fitness"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/workouts": {
      "post": {
        "description": "Exercises, sets, reps, load and RPE, stored as a logged session so the\nmember's strength progress (estimated 1RM), weekly hard sets and training\nreadiness include it. Gyms, fitness and personal-training organisations,\nwhile the member shares activity with you.",
        "operationId": "workouts_write_v1_members__member_ref__workouts_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkoutsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WriteResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "workouts.write"
            ]
          }
        ],
        "summary": "Write completed training sessions to a member's record",
        "tags": [
          "member_data"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/members/{member_ref}/workouts/{external_id}": {
      "delete": {
        "operationId": "workouts_retract_v1_members__member_ref__workouts__external_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "external_id",
            "required": true,
            "schema": {
              "title": "External Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetractResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "workouts.write"
            ]
          }
        ],
        "summary": "Retract one of your own workout items",
        "tags": [
          "member_data"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/caseload": {
      "get": {
        "description": "dietitian_practice.caseload: each active member with whether they share\nnutrition, target status (set here / elsewhere / none), the next visit\ndate, last logged date, logged days in 14 and flags (never_logged,\nno_logs_7d, off_target_14d). The thresholds are NORVYA CONVENTIONS, not\nclinical guidelines (`conventions`). No flag or log date for a member who\ndoes not share nutrition. ?member_ref= narrows to one (the\nnutrition.caseload_flagged event's resource_url).",
        "operationId": "nutrition_caseload_v1_nutrition_caseload_get",
        "parameters": [
          {
            "in": "query",
            "name": "member_ref",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Member Ref"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.read"
            ]
          }
        ],
        "summary": "Your dietitians' caseload",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/patients/{member_ref}/meal-rules": {
      "get": {
        "description": "Avoid / limit food rules and the meals a dietitian pinned, which the\npatient's generated plans are held to (matching by name: `matching`\nstates its limits).",
        "operationId": "nutrition_meal_rules_v1_nutrition_patients__member_ref__meal_rules_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.read"
            ]
          }
        ],
        "summary": "A patient's dietitian food rules and RD meals",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/patients/{member_ref}/meal-rules/meal-plan": {
      "put": {
        "operationId": "nutrition_meal_plan_set_v1_nutrition_patients__member_ref__meal_rules_meal_plan_put",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MealPlanIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.write"
            ]
          }
        ],
        "summary": "Set the dietitian's meals (replaces your practice's active set)",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/patients/{member_ref}/meal-rules/meal-plan/release": {
      "post": {
        "operationId": "nutrition_meal_plan_release_v1_nutrition_patients__member_ref__meal_rules_meal_plan_release_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/_Clinician"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.write"
            ]
          }
        ],
        "summary": "Release your practice's dietitian meals",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/patients/{member_ref}/meal-rules/rules": {
      "post": {
        "operationId": "nutrition_rule_add_v1_nutrition_patients__member_ref__meal_rules_rules_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FoodRuleIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.write"
            ]
          }
        ],
        "summary": "Add an avoid / limit food rule",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/patients/{member_ref}/meal-rules/rules/{rule_ref}/end": {
      "post": {
        "operationId": "nutrition_rule_end_v1_nutrition_patients__member_ref__meal_rules_rules__rule_ref__end_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "rule_ref",
            "required": true,
            "schema": {
              "title": "Rule Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/_Clinician"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.write"
            ]
          }
        ],
        "summary": "End a food rule your practice set",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/patients/{member_ref}/mnt": {
      "get": {
        "description": "dietitian_billing.hours_summary for one calendar year: the referrals\nyour practice recorded, the visits with the code and units YOUR dietitian\nrecorded (each status candidate_for_biller_review), hours recorded vs the\nhours in the rule text (NCD 180.1, quoted in rule_text), flags and\ncaveats. Never a coverage decision; hours billed by another practice are\nnot visible to Norvya.",
        "operationId": "nutrition_mnt_v1_nutrition_patients__member_ref__mnt_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "year",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Year"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.mnt.read"
            ]
          }
        ],
        "summary": "Medicare MNT referrals, recorded visits and hours vs the rule text",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/patients/{member_ref}/mnt/superbill-candidates": {
      "get": {
        "description": "dietitian_billing.build_claim_snapshot for the chosen recorded visits\n(the same snapshot the staff superbill prints): practice block, referring\nprovider, diagnoses with pointers, service lines with the code and units\nthe dietitian recorded, rendering clinician (staff_ref + NPI), charges, and\nmissing_fields your biller must complete. The patient identity block is\nleft out (you hold the patient's identity under your own record).\nstatus candidate_for_biller_review: Norvya never submits it, never picks a\ncode and makes no coverage decision. Audited as a PHI export before it is\nreturned (503 when the audit log is down).",
        "operationId": "nutrition_superbill_v1_nutrition_patients__member_ref__mnt_superbill_candidates_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "description": "Comma-separated visit_ref values (max 60).",
            "in": "query",
            "name": "visit_refs",
            "required": true,
            "schema": {
              "description": "Comma-separated visit_ref values (max 60).",
              "title": "Visit Refs",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.mnt.read"
            ]
          }
        ],
        "summary": "A superbill candidate for your biller (JSON; never submitted)",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/patients/{member_ref}/notes": {
      "get": {
        "description": "The four Nutrition Care Process sections as free text (Norvya ships no\nNCPT code list), draft or final, author as staff_ref.",
        "operationId": "nutrition_notes_v1_nutrition_patients__member_ref__notes_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.read"
            ]
          }
        ],
        "summary": "Your practice's structured MNT visit notes (ADIME)",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "dietitian_practice.create_note: stored as the practice's clinic note\n(not visible to the patient), the targets in force appended; finalize\nsigns it.",
        "operationId": "nutrition_note_create_v1_nutrition_patients__member_ref__notes_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/routers__partner_api_rehab_nutrition__NoteIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.write"
            ]
          }
        ],
        "summary": "Write a structured MNT visit note for a named dietitian",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/patients/{member_ref}/review": {
      "get": {
        "description": "dietitian_practice.client_review: days logged and NOT logged (unknown,\nnever missed or non-adherent), daily totals, averages over logged days\nonly, days within +/-10 % of each target with the target's source, sodium\n/ potassium with how many items carried a value, water (only when the\npatient shares daily logs) and context (conditions / medications, each\nunder its own sharing switch). The patient must share nutrition (409\nnutrition_not_shared).",
        "operationId": "nutrition_review_v1_nutrition_patients__member_ref__review_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "description": "7 | 14 | 30",
            "in": "query",
            "name": "days",
            "required": false,
            "schema": {
              "default": 14,
              "description": "7 | 14 | 30",
              "title": "Days",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.read"
            ]
          }
        ],
        "summary": "The food-log review against targets (the dietitian's view)",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/patients/{member_ref}/targets": {
      "get": {
        "description": "The active targets (which Norvya holds the patient's plan to while they\nare in force), whether your practice set them, your practice's history\nwith the guardrail findings the dietitian saw, and the bounds.",
        "operationId": "nutrition_targets_v1_nutrition_patients__member_ref__targets_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.read"
            ]
          }
        ],
        "summary": "A patient's dietitian nutrition targets",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      },
      "put": {
        "description": "dietitian_practice.set_targets: the values lock onto the patient's plan;\nDRI / AMDR guardrail findings are RETURNED (guardrail_issues), never\nclamped. Targets another practice set are 409\ntargets_set_by_another_practice. The patient gets Norvya's generic in-app\nnotice.",
        "operationId": "nutrition_targets_set_v1_nutrition_patients__member_ref__targets_put",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TargetsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.write"
            ]
          }
        ],
        "summary": "Set nutrition targets for a named dietitian",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/patients/{member_ref}/targets/release": {
      "post": {
        "operationId": "nutrition_targets_release_v1_nutrition_patients__member_ref__targets_release_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/_Clinician"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.write"
            ]
          }
        ],
        "summary": "Release the targets your practice set",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/nutrition/staff": {
      "get": {
        "description": "The active staff a nutrition write may name (role admin, provider or\ndietitian), with role and display name. Staff names are not patient\ndata.",
        "operationId": "nutrition_staff_v1_nutrition_staff_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "nutrition.read"
            ]
          }
        ],
        "summary": "Your practice's dietitians (and providers) as staff_ref values",
        "tags": [
          "nutrition"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/oauth/token": {
      "post": {
        "description": "OAuth2 client_credentials (RFC 6749 §4.4). Credentials in the form body\nor HTTP Basic. The token lives 15 minutes, carries the client's clinic and\nscopes, and stops working at once if the client is revoked.\n\nEMR vendors (client ids starting pvc_) serve many practices with one\ncredential: with practice=<practice_ref> the token is bound to that\npractice and carries the scopes you request that the practice approved\n(all of them when you request none); revoking the approval stops it at\nonce. Without practice you get a vendor-level token for GET /v1/practices\nonly. An unknown, revoked or someone else's practice_ref is invalid_grant.",
        "operationId": "oauth_token_v1_oauth_token_post",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Body_oauth_token_v1_oauth_token_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthErrorResponse"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Exchange client credentials for a bearer token",
        "tags": [
          "platform"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/occupational/exams": {
      "post": {
        "description": "occupational_health.request_exam: the programme must be known, the\nagreement active, and a respirator request carries the supplemental\ninformation 1910.134(e)(5) requires (else 422\nsupplemental_information_required, never sent incomplete).",
        "operationId": "occ_exam_request_v1_occupational_exams_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExamRequestIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.write"
            ]
          }
        ],
        "summary": "Request an exam from a practice you hold an agreement with",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/occupational/exams/{exam_ref}": {
      "get": {
        "operationId": "occ_exam_v1_occupational_exams__exam_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "exam_ref",
            "required": true,
            "schema": {
              "title": "Exam Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.read"
            ]
          }
        ],
        "summary": "One exam, as released to you",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/occupational/injuries": {
      "get": {
        "description": "occupational_health.employer_injury_view: occurred on, work related,\noutcome, restricted work, recorded on — input for YOUR OSHA 300 log, not\nthe log (recordability is yours to decide under 29 CFR 1904). Never the\nclinical description. return_to_work is the latest RELEASED\nreturn_to_work or fitness_for_duty exam conclusion performed on or after\nthe injury (determination, restrictions, valid until), else null; Norvya\nrecords no return-to-work date.",
        "operationId": "occ_injuries_v1_occupational_injuries_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.read"
            ]
          }
        ],
        "summary": "Injury reports for your own log, with return-to-work status",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/occupational/programs": {
      "get": {
        "description": "occupational_health.vocabulary: each programme with the CFR citation it\nrests on and whether its interval was read from the regulation\n(interval_asserted false = no due date is invented), hazards,\ndeterminations, statuses, injury outcomes and the keys an employer can\never be shown.",
        "operationId": "occ_programs_v1_occupational_programs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.read"
            ]
          }
        ],
        "summary": "Occupational exam programmes",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/occupational/provider/employers": {
      "get": {
        "operationId": "occ_provider_employers_v1_occupational_provider_employers_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.injuries.write"
            ]
          }
        ],
        "summary": "Employers you examine for under an active agreement",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/occupational/provider/injuries": {
      "post": {
        "description": "occupational_health.record_injury under an ACTIVE service agreement.\nThe description is clinical and stays with you; the employer is shown\nonly occurred on, work related, outcome and restricted work.",
        "operationId": "occ_provider_injury_v1_occupational_provider_injuries_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InjuryIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.injuries.write"
            ]
          }
        ],
        "summary": "Record a work injury report for an employer you examine for",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/occupational/providers": {
      "get": {
        "operationId": "occ_providers_v1_occupational_providers_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.read"
            ]
          }
        ],
        "summary": "Practices you hold an active occupational-health service agreement with",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/occupational/roster": {
      "get": {
        "description": "occupational_health.roster: one row per exam of an active worker, built\nfrom the employer allow-list (EMPLOYER_VISIBLE_KEYS). A conclusion the\nexamining clinician has not released reads determination 'pending' with no\nrestrictions (released false).",
        "operationId": "occ_roster_v1_occupational_roster_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "all",
              "pattern": "^(all|open|overdue)$",
              "title": "Status",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.read"
            ]
          }
        ],
        "summary": "Exam determinations and due dates (released conclusions only)",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/occupational/workers": {
      "get": {
        "description": "Your own roster rows (employee number, name, job, department, hazards).\nhas_account says whether the worker claimed the row in the app (which lets\nthem read their full record and the disclosure log); nothing else about\nthem is shown.",
        "operationId": "occ_workers_v1_occupational_workers_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.read"
            ]
          }
        ],
        "summary": "Your occupational-health roster",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "operationId": "occ_worker_add_v1_occupational_workers_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkerIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.write"
            ]
          }
        ],
        "summary": "Add a worker to your roster",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/occupational/workers/{worker_ref}/exams": {
      "get": {
        "description": "Every exam of the worker as the employer may hold it: programme,\nstatus, determination, restrictions, valid until, follow-up, due dates,\nreleased on. Never the worker's declaration, the findings or the notes\n(29 CFR 1910.134(e)(6); 1630.14(b)(1)).",
        "operationId": "occ_worker_exams_v1_occupational_workers__worker_ref__exams_get",
        "parameters": [
          {
            "in": "path",
            "name": "worker_ref",
            "required": true,
            "schema": {
              "title": "Worker Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.read"
            ]
          }
        ],
        "summary": "What has been released to you about one worker",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/occupational/workers/{worker_ref}/next-due": {
      "get": {
        "description": "occupational_health.next_due: only hearing conservation has an interval\nread from the regulation (annual after a baseline within six months of\nfirst exposure); every other programme answers asserted false with no\ndate, rather than a guessed one.",
        "operationId": "occ_next_due_v1_occupational_workers__worker_ref__next_due_get",
        "parameters": [
          {
            "in": "path",
            "name": "worker_ref",
            "required": true,
            "schema": {
              "title": "Worker Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "program",
            "required": true,
            "schema": {
              "title": "Program",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "occupational.read"
            ]
          }
        ],
        "summary": "When a worker's next exam in a programme is due",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/oncology/caseload": {
      "get": {
        "description": "Patients with a cancer episode who share their medical history with\nyou, in the staff screen's order (open red flags, the soonest dated\nfollow-up, then no shared plan): plan status (with the survivorship plan's\ndocument_ref when your practice authored it), the next dated follow-up item,\nthe latest check-in's lane and open red flags. Never the check-in answers.",
        "operationId": "oncology_caseload_v1_oncology_caseload_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OncCaseload"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "oncology.read"
            ]
          }
        ],
        "summary": "Your survivorship caseload with the status flags Norvya computes",
        "tags": [
          "oncology"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/oncology/imports/{import_ref}": {
      "get": {
        "description": "404 import_not_found for another practice's import or a patient no\nlonger linked or sharing their medical history with you.",
        "operationId": "oncology_import_get_v1_oncology_imports__import_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "import_ref",
            "required": true,
            "schema": {
              "title": "Import Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "oncology.import.write"
            ]
          }
        ],
        "summary": "One oncology import: the draft, or what was committed",
        "tags": [
          "oncology"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/oncology/imports/{import_ref}/commit": {
      "post": {
        "description": "The clinician's reviewed values — not the draft's — are written\n(oncology_fhir_import.confirm, entered by the care team): every treatment\nneeds the modality the clinician chose (422 invalid_treatments). With\nepisode_ref the treatments are added to that episode (identical rows not\nduplicated). 409 import_already_decided.",
        "operationId": "oncology_import_commit_v1_oncology_imports__import_ref__commit_post",
        "parameters": [
          {
            "in": "path",
            "name": "import_ref",
            "required": true,
            "schema": {
              "title": "Import Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommitIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "oncology.import.write"
            ]
          }
        ],
        "summary": "Commit the values a clinician reviewed",
        "tags": [
          "oncology"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/oncology/imports/{import_ref}/discard": {
      "post": {
        "operationId": "oncology_import_discard_v1_oncology_imports__import_ref__discard_post",
        "parameters": [
          {
            "in": "path",
            "name": "import_ref",
            "required": true,
            "schema": {
              "title": "Import Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/routers__partner_api_bh_onc__ClinicianIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "oncology.import.write"
            ]
          }
        ],
        "summary": "Discard a staged oncology import",
        "tags": [
          "oncology"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/panel/clinicians": {
      "get": {
        "description": "The active clinical staff of your practice (admin, provider,\npharmacist, therapist) as staff_ref values with name and role, to map your\nown users to: result writes name the clinician who did it. Staff names are\nnot patient data. Needs clinical.loops.write or clinical.panel.write.",
        "operationId": "panel_clinicians_v1_panel_clinicians_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClinicianList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.loops.write"
            ]
          }
        ],
        "summary": "Your practice's clinicians, as staff_ref values",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/panel/imports": {
      "post": {
        "description": "Parses and stages the file (held encrypted; nothing reaches a live table)\nand returns the dry run. Identity is the MRN only — never a name or birth\ndate match. A spreadsheet is accepted ONLY when every sheet matches a\nmapping profile saved by your practice's admin in Norvya (no interactive\nmapping over the API): 422 panel_import_mapping_profile_required otherwise.\nMedical practice with a BAA on file only (409 not_a_medical_practice /\npanel_import_baa_required).",
        "operationId": "panel_import_upload_v1_panel_imports_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_panel_import_upload_v1_panel_imports_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PanelImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "panel.import.write"
            ]
          }
        ],
        "summary": "Stage a panel import and get its dry run",
        "tags": [
          "data_in"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/panel/imports/{import_id}": {
      "get": {
        "description": "Imports made through the API by your practice only (404 panel_import_not_found otherwise).",
        "operationId": "panel_import_get_v1_panel_imports__import_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "import_id",
            "required": true,
            "schema": {
              "title": "Import Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PanelImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "panel.import.write"
            ]
          }
        ],
        "summary": "One panel import: dry run, progress, result",
        "tags": [
          "data_in"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/panel/imports/{import_id}/commit": {
      "post": {
        "description": "Writes the import in the background (poll GET, or subscribe to\nimport.completed / import.failed). New MRNs become managed, login-disabled\npatient records under the practice-of-record basis. Refused (409) with the\ndry run's first blocking code (e.g. panel_import_date_format_unconfirmed,\npanel_import_nothing_to_import), panel_import_baa_required when no BAA is on\nfile NOW, panel_import_not_staged, panel_import_commit_in_progress. The BAA\nis checked again by the worker before the first write.",
        "operationId": "panel_import_commit_v1_panel_imports__import_id__commit_post",
        "parameters": [
          {
            "in": "path",
            "name": "import_id",
            "required": true,
            "schema": {
              "title": "Import Id",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/CommitBody"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PanelImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "panel.import.write"
            ]
          }
        ],
        "summary": "Commit a staged import",
        "tags": [
          "data_in"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/panel/imports/{import_id}/discard": {
      "post": {
        "description": "Deletes the held file; the manifest (counts, reasons, hash) stays.",
        "operationId": "panel_import_discard_v1_panel_imports__import_id__discard_post",
        "parameters": [
          {
            "in": "path",
            "name": "import_id",
            "required": true,
            "schema": {
              "title": "Import Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PanelImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "panel.import.write"
            ]
          }
        ],
        "summary": "Discard a staged import",
        "tags": [
          "data_in"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/panel/worklist": {
      "get": {
        "description": "The latest COMPLETED current-data worklist run for your practice, ranked\nby the transparent priority score (no model, no hidden weights). Each\nfinding carries its rule code, severity, the evidence it used and its\npublished guideline. Only members still actively linked; read through the\nclinic data basis (what the practice may use; member home data only for the\ntypes the member shares with you). Triage states ARE applied (since Wave\nA3, the staff worklist's rules: worklist_triage.apply): addressed,\ndismissed and snoozed findings are hidden unless include_triaged=true,\nescalated / reappeared / ended-snooze findings reopen, and `priority` /\n`top_severity` / ranking count OPEN findings only (run_priority keeps the\nrun's own score). Each finding carries item_ref and a triage object.\n409 not_a_medical_practice for a non-practice.",
        "operationId": "panel_worklist_v1_panel_worklist_get",
        "parameters": [
          {
            "in": "query",
            "name": "severity",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Severity"
            }
          },
          {
            "in": "query",
            "name": "domain",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "description": "One member (mr_... or ext:...).",
            "in": "query",
            "name": "member_ref",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "One member (mr_... or ext:...).",
              "title": "Member Ref"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "in": "query",
            "name": "include_clear",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Clear",
              "type": "boolean"
            }
          },
          {
            "description": "Also show findings staff (or your system) addressed, dismissed or snoozed.",
            "in": "query",
            "name": "include_triaged",
            "required": false,
            "schema": {
              "default": false,
              "description": "Also show findings staff (or your system) addressed, dismissed or snoozed.",
              "title": "Include Triaged",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "description": "Language of title / detail (an app language).",
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "default": "en",
              "description": "Language of title / detail (an app language).",
              "title": "Lang",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorklistResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.panel.read"
            ]
          }
        ],
        "summary": "Your practice's ranked worklist: who needs attention and why",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/panel/worklist/items/{item_ref}/triage": {
      "post": {
        "description": "The same states and rules as Norvya's worklist screen (worklist_triage):\naddressed and dismissed need a reason_code; snoozed needs snooze_until\n(or snooze_days) and comes back on that date; open reopens. A later run at\na HIGHER severity, or the finding coming back after it cleared, reopens it\nautomatically. The change is recorded with your client as the actor and\nis visible to staff at once. 404 worklist_item_not_found for a ref that is\nnot in your latest worklist run; 422 worklist_reason_required,\nworklist_invalid_reason, worklist_note_required_for_other,\nworklist_snooze_until_required, worklist_invalid_snooze,\nworklist_note_too_long, worklist_invalid_state.",
        "operationId": "worklist_item_triage_v1_panel_worklist_items__item_ref__triage_post",
        "parameters": [
          {
            "in": "path",
            "name": "item_ref",
            "required": true,
            "schema": {
              "title": "Item Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TriageIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TriageOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.panel.write"
            ]
          }
        ],
        "summary": "Triage one worklist finding (addressed, snoozed, dismissed or reopened)",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/panel/worklist/runs": {
      "post": {
        "description": "Queues a run over every active patient of your practice (background).\nPoll GET /v1/panel/worklist/runs/{id}, or subscribe to the\nworklist.run_completed webhook. One run at a time per practice (409\npanel_worklist_run_in_progress); 409 panel_worklist_no_patients for an\nempty panel. The run is recorded as started by your client (chained audit\nrow) — runs started by a partner do not opt the practice into the nightly\nrefresh, which follows staff use.",
        "operationId": "panel_worklist_start_v1_panel_worklist_runs_post",
        "parameters": [
          {
            "description": "YYYY-MM-DD; default today's data. A past date runs a point-in-time evaluation.",
            "in": "query",
            "name": "as_of",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD; default today's data. A past date runs a point-in-time evaluation.",
              "title": "As Of"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorklistRun"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.panel.read"
            ]
          }
        ],
        "summary": "Start a worklist run for your practice",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/panel/worklist/runs/{run_id}": {
      "get": {
        "description": "Counts and progress only (no patient rows). 404 panel_worklist_run_not_found\nfor a run that is not your practice's.",
        "operationId": "panel_worklist_run_v1_panel_worklist_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorklistRun"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.panel.read"
            ]
          }
        ],
        "summary": "Status of one worklist run",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patch-tests/{patch_test_ref}": {
      "get": {
        "description": "Another practice's or an unknown session is 404 patch_test_not_found;\nthe patient must still be your member and share their medical history.",
        "operationId": "patch_test_v1_patch_tests__patch_test_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "patch_test_ref",
            "required": true,
            "schema": {
              "title": "Patch Test Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatchOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.read"
            ]
          }
        ],
        "summary": "One patch test of your practice",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patch-tests/{patch_test_ref}/reads": {
      "post": {
        "description": "ICDRG grades per allergen at 48h, 96h or day 7, read by the clinician\nwho looked at the skin (Norvya never reads a patch test from a photograph).\nA corrected read supersedes the earlier one, never edits it. Allergens must\nbe on the session's panel (422 allergen_not_in_panel).",
        "operationId": "patch_test_read_v1_patch_tests__patch_test_ref__reads_post",
        "parameters": [
          {
            "in": "path",
            "name": "patch_test_ref",
            "required": true,
            "schema": {
              "title": "Patch Test Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchReadIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatchOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.write"
            ]
          }
        ],
        "summary": "Record what a named clinician graded at one read",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/match": {
      "post": {
        "description": "Returns the member_ref of the ONE active patient of your practice whose\nMRN in Norvya equals identifier.value AND whose date of birth equals\nbirth_date. identifier.system must be one your practice uses for its MRN\nin Norvya (its SMART or write-back registration) or\nurn:norvya:practice-mrn. Anything else (no match, several matches, a\nwrong birth date, an unknown system, someone else's patient) is the same\n404 member_not_found. Rate limited more tightly than other calls (429\nrate_limited); every call is audited (never with the identifier value or\nbirth date). Medical practices only (409 not_a_medical_practice).",
        "operationId": "patient_match_v1_patients_match_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatchResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.patient.match"
            ]
          }
        ],
        "summary": "Find a patient's member_ref from your MRN and date of birth",
        "tags": [
          "ehr_rest"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/annual-review": {
      "get": {
        "description": "The one-page review a physician hands the patient at their annual\nvisit, as data: their year in numbers (a critical value is withheld),\nwhat is going well, the findings YOU select (urgent, practice-internal and\nunverified-source findings are refused: 409\nmember_review_urgent_finding / member_review_finding_not_for_patients),\nscreenings and vaccines (only when the patient shares their medical\nhistory with you), the medicine count and the review sentence. Rule-based\nwording (no LLM). The doctor line is left out: there is no Norvya user\nbehind a partner call.",
        "operationId": "patient_annual_review_v1_patients__member_ref__annual_review_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "description": "finding_key values from selectable_findings to put under \"What we'll focus on\" (at most 4).",
            "in": "query",
            "name": "finding_keys",
            "required": false,
            "schema": {
              "default": [],
              "description": "finding_key values from selectable_findings to put under \"What we'll focus on\" (at most 4).",
              "items": {
                "type": "string"
              },
              "title": "Finding Keys",
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "include_numbers",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Numbers",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "include_ageing_pace",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Ageing Pace",
              "type": "boolean"
            }
          },
          {
            "description": "Any of Norvya's languages; English when the review has no wording for it.",
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Any of Norvya's languages; English when the review has no wording for it.",
              "title": "Lang"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnnualReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.annual_review.read"
            ]
          }
        ],
        "summary": "A patient's member annual review content (JSON)",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/annual-review/content": {
      "get": {
        "description": "The same one-page review the practice prints from Norvya, for the\nselection you pass (the same refusals as the JSON call), rendered by the\nsame builder. A disclosure: audited as a PHI export before it is returned\n(503 when the audit log is down). No doctor line (no Norvya user behind a\npartner call).",
        "operationId": "patient_annual_review_pdf_v1_patients__member_ref__annual_review_content_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "description": "As for the JSON call (at most 4).",
            "in": "query",
            "name": "finding_keys",
            "required": false,
            "schema": {
              "default": [],
              "description": "As for the JSON call (at most 4).",
              "items": {
                "type": "string"
              },
              "title": "Finding Keys",
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "include_numbers",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Numbers",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "include_ageing_pace",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Ageing Pace",
              "type": "boolean"
            }
          },
          {
            "description": "Any of Norvya's languages; English when the script's font is missing.",
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Any of Norvya's languages; English when the script's font is missing.",
              "title": "Lang"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              },
              "application/pdf": {}
            },
            "description": "The PDF."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.annual_review.read"
            ]
          }
        ],
        "summary": "A patient's member annual review as a PDF",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/behavioral": {
      "get": {
        "description": "409 member_not_sharing_mental_health unless the patient shares mental\nhealth with you. Homework is counts and dates: what the client wrote is\nnever returned. Psychotherapy notes and the safety plan are never\navailable here (`not_available` says why).",
        "operationId": "patient_behavioral_v1_patients__member_ref__behavioral_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatientBehavioral"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "behavioral.read"
            ]
          }
        ],
        "summary": "One patient's measurement-based care: scores, crisis state, episode and homework",
        "tags": [
          "behavioral"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/behavioral/homework": {
      "post": {
        "description": "Through the therapy engine's own assignment (therapy_practice.\nassign_homework): the client completes it in Norvya's self-help tools and is\ntold with Norvya's generic notification (never your text on the lock\nscreen). Attributed to the clinician you name. Patients who share mental\nhealth with you and accept your messages only.",
        "operationId": "homework_assign_v1_patients__member_ref__behavioral_homework_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HomeworkIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HomeworkOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "behavioral.write"
            ]
          }
        ],
        "summary": "Assign between-session homework",
        "tags": [
          "behavioral"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/between-visit": {
      "get": {
        "description": "Signals (home BP vs office, resting heart rate, sleep, activity, CGM time\nin range, at-home labs) computed ONLY from the data types the patient has\nswitched on for your practice (home_bp, wearables, home_labs, cgm; default\noff; read live, so turning one off removes it from the next call). Every\nsignal is member-reported, never practice-confirmed and cites its source.",
        "operationId": "patient_between_visit_v1_patients__member_ref__between_visit_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "in": "query",
            "name": "as_of",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "As Of"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BetweenVisitResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.patient.read"
            ]
          }
        ],
        "summary": "Between-visit signals from the patient's own home data",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/brief": {
      "get": {
        "description": "The pre-visit brief (longevity, labs, body composition, GLP-1, progress,\nlife-stage care) for a patient of YOUR medical practice. Each section\nfollows the patient's sharing switches for your practice; withheld sections\nare never computed and are listed in withheld_by_consent. 409\nnot_a_medical_practice for a gym or other non-practice organisation.",
        "operationId": "patient_brief_v1_patients__member_ref__brief_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BriefResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.brief.read"
            ]
          }
        ],
        "summary": "Clinician pre-visit brief for one patient",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/brief/document": {
      "get": {
        "description": "The same consent-gated brief as GET .../brief (sections the patient\nhas not shared with your practice are never computed and are listed as\nnot shared), rendered as a plain FHIR R4 DocumentReference: text/plain\ninline (base64), LOINC 34133-9 Summary of episode note, docStatus\npreliminary (Norvya output for clinician review), no id and no vendor\nextensions. 409 not_a_medical_practice; 422 ehr_patient_id_invalid.",
        "operationId": "patient_brief_document_v1_patients__member_ref__brief_document_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "description": "Your chart's FHIR Patient id, used as the subject reference. Default: the member_ref as an identifier.",
            "in": "query",
            "name": "ehr_patient_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 64,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Your chart's FHIR Patient id, used as the subject reference. Default: the member_ref as an identifier.",
              "title": "Ehr Patient Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentReferenceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.brief.read"
            ]
          }
        ],
        "summary": "The pre-visit brief as a FHIR R4 DocumentReference, ready to file in your chart",
        "tags": [
          "ehr_rest"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/cards": {
      "get": {
        "description": "The cards Norvya's CDS Hooks service returns when this patient's chart\nis opened at your practice, as CDS Hooks 2.0 card objects, so you can\nrender them natively without registering a CDS Hooks service. A card is a\npointer: it names the record areas the patient shares with your practice,\nnever a value. The SMART launch link is included only when your practice\nhas an enabled SMART registration in Norvya. 404 member_not_found for\nanyone who is not your active patient; 409 not_a_medical_practice.",
        "operationId": "patient_cards_v1_patients__member_ref__cards_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "description": "Card language (an app language; else English).",
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "default": "en",
              "description": "Card language (an app language; else English).",
              "title": "Lang",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.brief.read"
            ]
          }
        ],
        "summary": "CDS Hooks-format cards for one patient, to render in your own UI",
        "tags": [
          "ehr_rest"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/care-gaps": {
      "get": {
        "description": "The practice care-gap rules (colorectal and breast screening, kidney\nhealth and HbA1c in diabetes, statin in diabetes), each with its status,\ndates, evidence and guideline citation, evaluated on what YOUR practice may\nuse for this patient (clinic data basis: the patient's sharing switches, or\nyour own records under practice-of-record with a BAA). Nothing is assumed:\na missing input is insufficient_data, never a guess.",
        "operationId": "patient_care_gaps_v1_patients__member_ref__care_gaps_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "description": "YYYY-MM-DD: evaluate as of a past date.",
            "in": "query",
            "name": "as_of",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD: evaluate as of a past date.",
              "title": "As Of"
            }
          },
          {
            "description": "YYYY-MM-DD (needs as_of): only what was on file at the end of that day.",
            "in": "query",
            "name": "known_as_of",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD (needs as_of): only what was on file at the end of that day.",
              "title": "Known As Of"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CareGapsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.patient.read"
            ]
          }
        ],
        "summary": "Care gaps for one patient",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/care-management": {
      "get": {
        "description": "The rows of GET /v1/billing/care-management for one patient (the\nresource billing.threshold_met points to). A patient with nothing filed\nthis month answers an empty programs list.",
        "operationId": "patient_care_management_v1_patients__member_ref__care_management_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "description": "YYYY-MM; default the current month.",
            "in": "query",
            "name": "month",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM; default the current month.",
              "title": "Month"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CmPatient"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "billing.read"
            ]
          }
        ],
        "summary": "One patient's care-management month, for your biller",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/case-reports/evaluate": {
      "post": {
        "description": "Matches the patient's coded conditions, labs and immunizations against\nthe active eRSD release and raises a candidate per matched condition\n(already-known ones come back too). A match is NOT a statement that the\ncase is reportable: only the Reportability Response decides. An empty list\nis not a statement that there is nothing to report (see coverage). 409\ncase_reporting_not_active; 409 no_ersd_release.",
        "operationId": "ph_ecr_evaluate_v1_patients__member_ref__case_reports_evaluate_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcrEvaluateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.case_reports.write"
            ]
          }
        ],
        "summary": "Match a patient's record against the reportable-condition trigger codes",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/child-profile": {
      "get": {
        "description": "Only what the guardian chose: with medical history, the well-child and\nvaccine schedule and the number of doses recorded (the doses:\n/v1/patients/{member_ref}/immunizations); with biometrics, the latest\ngrowth points. The guardian link is re-checked on every read (404\nchild_profile_not_found once it ends, or for a member who is not a\nguardian-managed child). The newborn record and milestone checklists are\nnever shared with an organisation (not_shared).",
        "operationId": "child_profile_v1_patients__member_ref__child_profile_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "life_stages.read"
            ]
          }
        ],
        "summary": "A child profile a parent or guardian shared with your practice",
        "tags": [
          "life_stages"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/child-screening": {
      "get": {
        "description": "Which EPSDT components Norvya holds or finds due: well visits,\nimmunizations, the scored developmental and autism screens (licensed\ninstruments only), blood lead, and the adolescent depression and\nsubstance-use screens as recorded-or-due only (their scores are never\nsent). not_recorded is never \"missed\". The guardian must share medical\nhistory with you.",
        "operationId": "child_screening_v1_patients__member_ref__child_screening_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "life_stages.read"
            ]
          }
        ],
        "summary": "A shared child's EPSDT screening status (developmental, autism, lead, adolescent)",
        "tags": [
          "life_stages"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/claim-invite": {
      "get": {
        "description": "no_contact | not_sent | sent | expired | claimed | revoked, or\nhas_login for a patient who already signs in themselves; whether a\ncontact is on file (never the contact) and the dates. The resource a\nmember.account_claimed webhook points to.",
        "operationId": "patient_claim_invite_status_v1_patients__member_ref__claim_invite_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimInviteOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.claim_invite"
            ]
          }
        ],
        "summary": "Where a patient's claim invitation stands",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "For a patient your practice imported (a practice-of-record account with\nno login): Norvya emails its own invitation, in the patient's language and\nyour branding, with a one-time code; claiming also needs the date of birth\nyou recorded (five wrong tries lock it for an hour). The contact you send\nis held sealed for the invitation and never put on the account. A fresh\ncode replaces any earlier one. outcome says what happened; the code is\nnever returned. Never looks up an account by address. 409\nclaim_invite_baa_required; 422 claim_email_invalid / claim_phone_invalid /\nclaim_channel_invalid. A sandbox simulates (nothing written or sent).",
        "operationId": "patient_claim_invite_v1_patients__member_ref__claim_invite_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClaimInviteBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimInviteOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.claim_invite"
            ]
          }
        ],
        "summary": "Invite an imported patient to claim their own Norvya account",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/claims-summary": {
      "get": {
        "description": "Counts by part and setting, service-date span, the top ICD-10\ncategories and CMS-HCC condition categories (only when an official CMS\nmodel is loaded; never a guessed mapping and never a risk score) from the\nclaims you imported (BAA gate), plus the member's own Medicare Blue Button\nsummary when they share their medical history with you.",
        "operationId": "patient_claims_summary_v1_patients__member_ref__claims_summary_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimsSummary"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "claims.read"
            ]
          }
        ],
        "summary": "A member's claims summary (your imports + their Blue Button)",
        "tags": [
          "claims"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/clinician-ratings": {
      "post": {
        "description": "The measures Norvya lets a practice's staff enter (GET /v1/instruments\nclinician_rated[] with recordable true: today the Nine-Hole Peg Test and\nFOIS), scored by Norvya and stored exactly as the staff screen stores them,\nattributed to the clinician you name (an active clinical staff member of\nyour practice; 422 clinician_not_found). The patient must share their\nmedical history with you (409 member_not_sharing).",
        "operationId": "clinician_rating_v1_patients__member_ref__clinician_ratings_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RatingIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RatingOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.ratings.write"
            ]
          }
        ],
        "summary": "Record a clinician-rated measure a named clinician assigned",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/community-care/authorizations": {
      "get": {
        "description": "The referrals and authorisations your practice recorded from the\nagency (agency_care): numbers, authorised services, dates and visits,\nvisits counted, documents sent, the advisory flags. Norvya does not\nauthorise care, determine eligibility or submit to any agency system.",
        "operationId": "community_care_member_v1_patients__member_ref__community_care_authorizations_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthorizationList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "programs.community_care.read"
            ]
          }
        ],
        "summary": "A patient's VA / IHS / TRICARE referrals and authorisations at your practice",
        "tags": [
          "programs"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/connections": {
      "get": {
        "description": "Status, connected and last-sync times only, and only when the member\nshares their medical history with you (shared false and an empty list\notherwise). Read-only: connecting is the member's act in the app.",
        "operationId": "patient_connections_v1_patients__member_ref__connections_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "claims.read"
            ]
          }
        ],
        "summary": "Whether a member connected Medicare Blue Button or VA records",
        "tags": [
          "claims"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/days-at-home": {
      "get": {
        "description": "Days at home over the window ending today, from recorded care events,\ncounted only over the days a recorded ascertainment period covers (partial\ncoverage is never extrapolated). With no ascertainment period days_at_home\nis null with reason no_ascertainment_period: no recorded admission does not\nmean none happened. A same-day ED visit and a hospital-at-home episode are\nnot days away. Never a projection. The patient must share their medical\nhistory with you (403 consent_not_granted).",
        "operationId": "patient_days_at_home_v1_patients__member_ref__days_at_home_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "in": "query",
            "name": "window_days",
            "required": false,
            "schema": {
              "default": 365,
              "maximum": 1095,
              "minimum": 30,
              "title": "Window Days",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DaysAtHomeResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospital.days_at_home.read"
            ]
          }
        ],
        "summary": "Observed days at home (no ascertainment, no number)",
        "tags": [
          "hospital_care"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/derm-severity": {
      "get": {
        "description": "Assessments clinicians recorded (Norvya never scores severity from a\nphotograph), newest first, with the instrument sources. SCORAD and PASI are\nstateless calculators in Norvya and are not stored, so there is no history\nto return (not_available). The patient must share their medical history\nwith you (403 consent_not_granted).",
        "operationId": "patient_derm_severity_v1_patients__member_ref__derm_severity_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.read"
            ]
          }
        ],
        "summary": "A patient's hidradenitis (IHS4 / Hurley) and acne (IGA) assessments",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/derm-severity/acne": {
      "post": {
        "description": "The FDA 2005 IGA grade the clinician assigned, with optional counts and\nsites, stored exactly as the staff screen stores it. Medical history\nshared (403 consent_not_granted).",
        "operationId": "record_acne_v1_patients__member_ref__derm_severity_acne_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcneIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.write"
            ]
          }
        ],
        "summary": "Record an acne (IGA) assessment a named clinician made",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/derm-severity/hs": {
      "post": {
        "description": "The clinician's lesion counts (and, when they judged it, the Hurley\nstage); Norvya computes IHS4 and its band exactly as the staff screen does.\nclinician is an active clinical staff member of your practice (422\nclinician_not_found). Medical history shared (403 consent_not_granted).",
        "operationId": "record_hs_v1_patients__member_ref__derm_severity_hs_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.write"
            ]
          }
        ],
        "summary": "Record a hidradenitis suppurativa assessment a named clinician made",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/derm-wounds": {
      "get": {
        "description": "The same wound log hospitals read (GET /v1/patients/{ref}/wounds), for a\ntreating practice: location, first and last assessment and the date of\neach assessment. No measurements (they are the wound tracker's image-based\nestimates and are not shared with partners) and never the wound model's\nclassification (type, stage, severity, trajectory, tissue percentages), the\nphotograph, the patient's notes, pain score or treatment text. Skin scans\nshared (403 consent_not_granted).",
        "operationId": "patient_derm_wounds_v1_patients__member_ref__derm_wounds_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WoundsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.read"
            ]
          }
        ],
        "summary": "A patient's wound log: the record and its assessment dates (practices)",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/documents": {
      "get": {
        "description": "Each kind maps to a document Norvya already produces for your staff\n(survivorship care plan, Good Faith Estimate when you also hold\nbilling.read, post-discharge summary for hospitals, the wellness visit's\nwritten prevention plan; for medical-travel desks the bilingual\nrepatriation summary, weekly nursing reports and, with\ntravel.billing.read, nursing invoices; for pharmacies the completed\nmedication review letter), under that kind's own gate. Kinds the patient's\nsharing withholds are named in `withheld`; kinds Norvya does not serve\nhere are listed with the reason in `not_available`.",
        "operationId": "patient_documents_v1_patients__member_ref__documents_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "documents.read"
            ]
          }
        ],
        "summary": "The documents Norvya holds about a patient for your practice",
        "tags": [
          "records"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/encounters": {
      "get": {
        "description": "Every notice your practice may see for this patient, newest first:\nfrom a hospital / HIE ADT feed (yours, or a hospital's through Norvya)\nor sent by the patient. A feed notice is visible while the patient\nshares their medical history with your practice, or under a\npractice-of-record relationship with a BAA on file; a notice the patient\nsent is always visible to the practices they sent it to (and gone once\nthey withdraw it). A discharge carries its Transitional Care Management\nclock: contact by the 2nd business day, face-to-face by day 14 (moderate\ncomplexity) or 7 (high), the 30-day period. A notice is what was\nreported; no notice does not mean no hospital use. Treating practices\nand hospitals only (409 not_a_medical_practice).",
        "operationId": "patient_encounters_v1_patients__member_ref__encounters_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "description": "How far back (event date).",
            "in": "query",
            "name": "days",
            "required": false,
            "schema": {
              "default": 90,
              "description": "How far back (event date).",
              "maximum": 365,
              "minimum": 1,
              "title": "Days",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EncountersResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "transitions.notices.read"
            ]
          }
        ],
        "summary": "Hospital admissions, discharges and ED visits Norvya received for one patient",
        "tags": [
          "transitions"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/good-faith-estimates": {
      "get": {
        "description": "Every estimate version your practice issued for the patient (through the\nAPI or Norvya's own screen), newest first, without the document body.",
        "operationId": "gfe_list_v1_patients__member_ref__good_faith_estimates_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GfeList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "billing.read"
            ]
          }
        ],
        "summary": "A patient's Good Faith Estimates from your practice",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "A No Surprises Act estimate (45 CFR 149.610) for an uninsured or\nself-pay patient, from YOUR codes and charges (Norvya never chooses a code\nor a price). Lines without a provider belong to your practice and take its\nname, organisation NPI, TIN and address unless you pass convening_*. The\nsame required-contents check as Norvya's own screen: anything §149.610(c)\nasks for that is missing is refused as 422 {code:\nrequired_contents_missing, missing: [...]}, and nothing is recorded. The\npatient's name and date of birth come from Norvya. Issued documents are\nretained six years and never edited; delivered in the app when\ndelivery_method is in_app.",
        "operationId": "gfe_create_v1_patients__member_ref__good_faith_estimates_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GfeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GfeOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "billing.estimates.write"
            ]
          }
        ],
        "summary": "Issue a Good Faith Estimate for a patient",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/growth": {
      "get": {
        "description": "Each measurement with its age (corrected age for a preterm baby while\nit applies) and its percentile from the WHO Child Growth Standards (under\n24 months) or the CDC 2000 charts (2-20 years). Before corrected term a\npoint needs a licensed preterm reference (licensed_reference_not_loaded\notherwise). The guardian must share growth (biometrics) with you.",
        "operationId": "child_growth_v1_patients__member_ref__growth_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "description": "weight | height | head_circumference | bmi: also return that metric's percentile curves",
            "in": "query",
            "name": "metric",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "weight | height | head_circumference | bmi: also return that metric's percentile curves",
              "title": "Metric"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "life_stages.read"
            ]
          }
        ],
        "summary": "A shared child's growth measurements with WHO / CDC percentiles",
        "tags": [
          "life_stages"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/iis-queries": {
      "post": {
        "description": "QBP^Q11 (Z34 history, or Z44 evaluated history and forecast) for one\npatient. Doses the registry returns are added to the patient's record\n(source iis, document reviewed; duplicates skipped) and the record comes\nback with Norvya's adult forecast. A candidate list, no match or a\nprotected record is reported in query_status and nothing is imported.\nThe query sends the patient's identity to the state, so it is audited as a\ndisclosure first (fail closed), and the answer as a read. Needs an active\nconnection (409 iis_not_active). A registry outage is retried in the\nbackground and reported here as 502 iis_unreachable.",
        "operationId": "ph_iis_query_v1_patients__member_ref__iis_queries_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/IisQueryBody"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IisQueryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.immunizations.read"
            ]
          }
        ],
        "summary": "Ask your registry for a patient's immunization history",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/immunizations": {
      "get": {
        "description": "Completed doses on the patient's Norvya record, newest first, each with\nthe immunization_ref you report it by, plus Norvya's adult forecast. The\npatient must share their medical history with your organisation (403\nmedical_history_not_shared).",
        "operationId": "ph_immunizations_v1_patients__member_ref__immunizations_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImmunizationsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.immunizations.read"
            ]
          }
        ],
        "summary": "A patient's immunization record (with refs to report)",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/immunizations/{immunization_ref}/iis-preview": {
      "get": {
        "description": "Builds the HL7 v2.5.1 VXU^V04 with the same builder a submission uses\n(your state's published local rules applied) and returns a summary: the\nsegments, the vaccine, whether it reports a new administration (00) or\na historical dose (01), and whether the VFC eligibility observation is\nincluded. Not the HL7 text. A dose the builder cannot report truthfully\nis refused with its reason (422 iis_uncoded_dose, iis_patient_incomplete,\niis_vfc_eligibility_unknown ...). Needs a configured connection (409\niis_not_configured); nothing is sent.",
        "operationId": "ph_iis_preview_v1_patients__member_ref__immunizations__immunization_ref__iis_preview_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "immunization_ref",
            "required": true,
            "schema": {
              "title": "Immunization Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IisPreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.immunizations.write"
            ]
          }
        ],
        "summary": "What a registry report of one dose would contain",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/immunizations/{immunization_ref}/iis-submissions": {
      "post": {
        "description": "An explicit act: builds the VXU and sends it over the CDC IIS web\nservice to your registry, reads the ACK and answers with the submission.\nA transport failure or an application reject (AR / CR) is retried on the\nbackoff ladder; an application error (AE / CE) or a dose Norvya cannot\nreport truthfully waits in needs_review for your staff. Refused unless the\nconnection is active under an attested state agreement (409\niis_not_active, nothing recorded). The disclosure is audited before it\nleaves and refused when the audit log is down. Subscribe to\npublic_health.iis_ack_received for ACKs that arrive on a retry.",
        "operationId": "ph_iis_submit_v1_patients__member_ref__immunizations__immunization_ref__iis_submissions_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "immunization_ref",
            "required": true,
            "schema": {
              "title": "Immunization Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IisSubmissionOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.immunizations.write"
            ]
          }
        ],
        "summary": "Report one dose to your state immunization registry",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/lesions": {
      "get": {
        "description": "Each lesion the patient is watching in Norvya: their name for it, the\nbody site, first noticed, monitoring cadence, next recheck and whether it\nis due, photographs taken, growth rate (image-based estimate) and status.\nNever the photograph and never the classifier's output (label,\nprobabilities, risk level). The patient must share skin scans with you (403\nconsent_not_granted).",
        "operationId": "patient_lesions_v1_patients__member_ref__lesions_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "in": "query",
            "name": "include_archived",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Archived",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LesionList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.read"
            ]
          }
        ],
        "summary": "A patient's tracked skin lesions: metadata and recheck state",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/lesions/{lesion_ref}": {
      "get": {
        "description": "The lesion's summary plus, per photograph, when it was taken, the site,\nwhether an image is on file (never the image), the symptoms the patient\nrecorded and any biopsy pathology result; and between photographs the\nsize, colour and shape changes Norvya's comparison engine estimated.\nAnother member's or an unknown lesion is 404 lesion_not_found.",
        "operationId": "patient_lesion_v1_patients__member_ref__lesions__lesion_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lesion_ref",
            "required": true,
            "schema": {
              "title": "Lesion Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LesionDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.read"
            ]
          }
        ],
        "summary": "One tracked lesion: photograph series (metadata) and size changes",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/older-adults/care-dyad": {
      "get": {
        "description": "Your organisation's dyads where this patient is the beneficiary:\nrelationship, status, whether the caregiver has a Norvya account and\nconsented, the navigator as a staff_ref, care-plan dates, contact counts,\nrespite hours and which GUIDE-shaped elements are present (no score; what\nNorvya does not do is listed in not_covered). Never the caregiver's name or\ncontact details, never the support-line number. Caregiver burden\nassessments only when the caregiver's own consent is recorded;\ncaregiver_app_access says whether the patient granted THAT caregiver the\nin-app caregiver summary. Recording these elements is not GUIDE\nparticipation.",
        "operationId": "older_care_dyad_v1_patients__member_ref__older_adults_care_dyad_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "older_adults.read"
            ]
          }
        ],
        "summary": "Your care dyads for this patient (caregiver link, plan, contacts, GUIDE-shaped elements)",
        "tags": [
          "older_adults"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/older-adults/dementia-risk-factors": {
      "get": {
        "description": "Hearing loss, social isolation (UCLA-3, a proxy), vision loss,\neducation and air pollution as controlled / borderline / elevated /\nunknown, with the in-app action that fills an unknown one. risk_score is\nalways null: Norvya does not turn the Lancet Commission's population\nattributable fractions into a personal dementia risk.",
        "operationId": "older_dementia_factors_v1_patients__member_ref__older_adults_dementia_risk_factors_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "older_adults.read"
            ]
          }
        ],
        "summary": "The five fillable dementia risk factors (status only, no score)",
        "tags": [
          "older_adults"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/older-adults/falls": {
      "get": {
        "description": "The newest CDC STEADI self-check as codes (tier, screen positive, falls\nin the past year, which gait / strength / balance tests flagged; fields the\nalgorithm filled from earlier checks are named in autofilled_from), the\nlatest SPPB, gait speed, Timed Up and Go and chair stand, and the patient's\nenrolments in named falls-prevention programmes with each programme's own\ncompletion threshold and fidelity. A check never done is null, never low.\nThe patient must share their medical history with you. Subscribe to\nolder_adults.falls_tier_raised for a tier that went up.",
        "operationId": "older_falls_v1_patients__member_ref__older_adults_falls_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "older_adults.read"
            ]
          }
        ],
        "summary": "An older patient's falls risk tier, mobility checks and falls-prevention programmes",
        "tags": [
          "older_adults"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/older-adults/function": {
      "get": {
        "description": "The latest Katz ADL and Lawton IADL responses the patient completed\n(scored by Norvya) and whether you can request them. Their wording is\nlicensed: on a deployment without the licensed copy they are not\nrequestable (not_requestable_reason instrument_not_licensed) and no score is\ninvented. Request one with POST /v1/members/{member_ref}/instrument-requests.",
        "operationId": "older_function_v1_patients__member_ref__older_adults_function_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "older_adults.read"
            ]
          }
        ],
        "summary": "Physical function: Katz ADL and Lawton IADL where licensed and completed",
        "tags": [
          "older_adults"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/older-adults/hospice-review": {
      "get": {
        "description": "supports_review says whether enough is recorded to be worth a\nconversation, and missing what is not; never whether the patient is\neligible. Your clinicians' latest Palliative Performance Scale level,\nwhich functional measures exist, hospital / ED counts ONLY inside an\nascertainment period (no period, no number), the weight trend while the\npatient shares biometrics, the serious-illness care status, and whether an\nadvance-care plan is on file (not its contents).",
        "operationId": "older_hospice_v1_patients__member_ref__older_adults_hospice_review_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "older_adults.read"
            ]
          }
        ],
        "summary": "Hospice / serious-illness review status (never an eligibility answer)",
        "tags": [
          "older_adults"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/older-adults/medication-burden": {
      "get": {
        "description": "The same evaluation as the practice's medication-burden insight: the\ncount of CURRENT medications (only entries carrying a status or a stop date\ncount) with its band (under 5, polypharmacy 5-9, hyper-polypharmacy 10+),\nthe Anticholinergic Cognitive Burden total and band, sedatives, and regimen\nfinding codes. status explains an exclusion (under_65,\nmedications_not_shared, awaiting_medication_dates, ...). A list for review,\nnever a recommendation to stop or change a medicine.",
        "operationId": "older_med_burden_v1_patients__member_ref__older_adults_medication_burden_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "older_adults.read"
            ]
          }
        ],
        "summary": "Medication burden for medication review (65 and over)",
        "tags": [
          "older_adults"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/older-adults/sleep-apnea": {
      "get": {
        "description": "Where the patient is on screen, sleep study, treatment, adherence:\nstate, next action, the STOP-BANG score and band (a screen, not a\ndiagnosis) and, while on treatment and sharing both biometrics and their\nwearables home data (which covers sleep and CPAP) with you, CPAP\nnights logged against the CMS definition (4 h on 21 of 30 nights). An\nunlogged night is unknown, not missed. Deep-sleep minutes and anything\nabout brain clearance are never reported.",
        "operationId": "older_sleep_apnea_v1_patients__member_ref__older_adults_sleep_apnea_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "older_adults.read"
            ]
          }
        ],
        "summary": "The sleep-apnoea pathway and CPAP adherence",
        "tags": [
          "older_adults"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/oncology": {
      "get": {
        "description": "Each cancer episode (type, diagnosis date, stage and histology as\nwritten, status, treatments with modality, agents and dates, who entered\nit), the check-in lanes and your open import drafts. 409 member_not_sharing\nunless the patient shares their medical history with you.",
        "operationId": "patient_oncology_v1_patients__member_ref__oncology_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatientOncology"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "oncology.read"
            ]
          }
        ],
        "summary": "One patient's cancer treatment summary",
        "tags": [
          "oncology"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/oncology/imports": {
      "post": {
        "description": "Mapped exactly as the care-team upload maps it\n(oncology_fhir_import.map_bundle: mCODE profiles, listed ICD-10-CM / SNOMED\nCT codes; nothing inferred, dosage never read) into a DRAFT: what was mapped\n(`proposal`) and every resource it did not use with the reason (`unmapped`).\nNothing reaches the patient's record until POST .../commit with the values\na clinician reviewed. One patient per bundle (422 bundle_multiple_patients);\nthe bundle is not stored. 409 member_not_sharing without medical-history\nsharing.",
        "operationId": "oncology_import_stage_v1_patients__member_ref__oncology_imports_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "413": {
            "description": "Bundle too large."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "oncology.import.write"
            ]
          }
        ],
        "summary": "Stage a FHIR R4 oncology treatment summary as a draft (a dry run)",
        "tags": [
          "oncology"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/patch-tests": {
      "get": {
        "description": "Your practice's sessions (panel, schedule, per-allergen reads, positives,\nunread allergens) and the patient's avoidance list across every session a\nclinician read (only reactions graded positive; doubtful and irritant\nexcluded with a count). Medical history shared (403 consent_not_granted).",
        "operationId": "patient_patch_tests_v1_patients__member_ref__patch_tests_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.read"
            ]
          }
        ],
        "summary": "A patient's patch tests at your practice and their allergen avoidance list",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "Patches applied by your practice: the panel you use, substance by\nsubstance (Norvya ships no allergen series), and when they went on. The\nanswer carries the read schedule (48h, 96h, day 7). Medical history shared\n(403 consent_not_granted).",
        "operationId": "start_patch_test_v1_patients__member_ref__patch_tests_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchStartIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatchOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.write"
            ]
          }
        ],
        "summary": "Start a patch test with your own panel",
        "tags": [
          "derm"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/pregnancy": {
      "get": {
        "description": "The provider view of pregnancy_care: phase, gestational age or\npostpartum day, the prenatal / postpartum schedule as windows (never\n\"missed\"), home BP and glucose against the ACOG thresholds while the\npatient shares biometrics, medication flags and LactMed while they share\nmedications, and the latest warning-sign check's lane. A thoughts-of-harm\nanswer is never named; crisis_flag appears only when they share mental\nhealth with you. Needs medical history; refused for a guardian-managed\nchild profile.",
        "operationId": "pregnancy_v1_patients__member_ref__pregnancy_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "life_stages.read"
            ]
          }
        ],
        "summary": "A patient's pregnancy or postpartum summary",
        "tags": [
          "life_stages"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/record": {
      "get": {
        "description": "A `collection` Bundle built by the same builders and the same consent\nscope as the population export (fhir_bulk.patient_export): the patient's\nsharing choices with your practice, your practice's own records under\npractice-of-record, member home data per their switches, 42 CFR Part 2\nprogram records only under a covering consent (labelled). What consent\nleft out is named in an OperationOutcome entry. A BAA on file is required\n(409 record_baa_required; a sandbox needs none). Capped at\nPARTNER_RECORD_MAX_RESOURCES resources / PARTNER_RECORD_MAX_BYTES bytes:\nbeyond that, 413 record_too_large_use_population_export (narrow with\ntypes / since, or run POST /v1/population/exports). Audited as a PHI\nexport before it is returned (503 when the audit log is down).",
        "operationId": "patient_record_v1_patients__member_ref__record_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "description": "Comma-separated FHIR resource types (default all the population export supports).",
            "in": "query",
            "name": "types",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated FHIR resource types (default all the population export supports).",
              "title": "Types"
            }
          },
          {
            "description": "YYYY-MM-DD: only resources on or after.",
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD: only resources on or after.",
              "title": "Since"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/fhir+json": {},
              "application/json": {
                "schema": {}
              }
            },
            "description": "A FHIR R4 Bundle."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "413": {
            "description": "Too large: use POST /v1/population/exports."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.record.read"
            ]
          }
        ],
        "summary": "One patient's record as a FHIR R4 Bundle",
        "tags": [
          "records"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/referrals": {
      "get": {
        "description": "Each tracked referral's status, stage, the dates recorded, how each\nfact was established, and the overdue clocks your practice set. No record\nof an appointment is not a record that none was made.",
        "operationId": "patient_referrals_v1_patients__member_ref__referrals_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "in": "query",
            "name": "open",
            "required": false,
            "schema": {
              "default": false,
              "title": "Open",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReferralList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.patient.read"
            ]
          }
        ],
        "summary": "Referrals your practice tracks for a patient, with their loop status",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/referrals/{referral_ref}/status": {
      "post": {
        "description": "Through referral_loop's own functions and transition table (422\ninvalid_transition:<from>-><to>). scheduled / seen need occurred_on;\nreport_received needs report_source and the report text or your\ndocument_ref; completed (the referring provider has the outcome) needs a\nreport on file (409 no_report_to_send). Recorded with source\npractice_system.",
        "operationId": "referral_status_v1_patients__member_ref__referrals__referral_ref__status_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "referral_ref",
            "required": true,
            "schema": {
              "title": "Referral Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReferralStatusIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReferralOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.loops.write"
            ]
          }
        ],
        "summary": "Move a tracked referral (scheduled, seen, report received, completed, ...)",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/results": {
      "get": {
        "description": "The patient's items in your practice's result follow-up inbox, oldest\nfirst: what arrived, whether a clinician acknowledged it, whether the\npatient was told, the action recorded, and the overdue clocks. A pointer,\nnever the value: fetch the value from its source. A flag is carried only\nwhen a source supplied it (flag_origin says which kind). Only results the\npatient still shares with you.",
        "operationId": "patient_results_v1_patients__member_ref__results_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "description": "open | closed | all",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "open",
              "description": "open | closed | all",
              "title": "Status",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.patient.read"
            ]
          }
        ],
        "summary": "A patient's results awaiting follow-up (acknowledge, inform, act, close)",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/results/{result_ref}/acknowledge": {
      "post": {
        "description": "The clinician named by `clinician` saw it. NOT notification of the\npatient (that is /informed). Re-acknowledging keeps the first record.\n409 already_closed; 422 clinician_not_found.",
        "operationId": "result_acknowledge_v1_patients__member_ref__results__result_ref__acknowledge_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "result_ref",
            "required": true,
            "schema": {
              "title": "Result Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/routers__partner_api_actions__ClinicianIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.loops.write"
            ]
          }
        ],
        "summary": "Record that a named clinician acknowledged a result",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/results/{result_ref}/action": {
      "post": {
        "description": "What was done, in the clinician's words, and what kind of thing it\nwas. 422 action_text_required, invalid_action_link_kind.",
        "operationId": "result_action_v1_patients__member_ref__results__result_ref__action_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "result_ref",
            "required": true,
            "schema": {
              "title": "Result Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.loops.write"
            ]
          }
        ],
        "summary": "Record the action taken on a result",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/results/{result_ref}/close": {
      "post": {
        "description": "Refused until a clinician acknowledged it (409 acknowledge_first) and,\nfor a flagged result, the patient was told (409 patient_not_informed) and\nan action recorded (409 action_not_recorded).",
        "operationId": "result_close_v1_patients__member_ref__results__result_ref__close_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "result_ref",
            "required": true,
            "schema": {
              "title": "Result Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloseIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.loops.write"
            ]
          }
        ],
        "summary": "Close the loop on a result",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/results/{result_ref}/informed": {
      "post": {
        "description": "By the named clinician, by `method`. 422 invalid_inform_method.",
        "operationId": "result_informed_v1_patients__member_ref__results__result_ref__informed_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "result_ref",
            "required": true,
            "schema": {
              "title": "Result Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InformedIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.loops.write"
            ]
          }
        ],
        "summary": "Record that the patient was told",
        "tags": [
          "clinical"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/risk-adjustment-evidence": {
      "get": {
        "description": "Every ICD-10-CM code in the claims YOU imported for the member, each\nwith the dated claims that document it (claim_ref, part, setting, place\nof service, procedure codes present, service dates). When an official\nCMS-HCC model is loaded the codes are grouped into condition categories\nafter the hierarchy (suppressed categories listed, unmapped codes kept);\notherwise condition_categories is null with reason hcc_model_not_loaded:\nNorvya never ships or guesses a mapping. risk_score is always null. The\nclaims are not filtered for risk-adjustment-eligible encounter types (CMS's\nfiltering logic is not implemented). 409 claims_baa_required.",
        "operationId": "patient_risk_adjustment_evidence_v1_patients__member_ref__risk_adjustment_evidence_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "description": "Service year; default all.",
            "in": "query",
            "name": "year",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maximum": 2100,
                  "minimum": 2000,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Service year; default all.",
              "title": "Year"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EngineReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "claims.risk_adjustment.read"
            ]
          }
        ],
        "summary": "HCC audit evidence for a member (never a score)",
        "tags": [
          "claims"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/skin-classifications": {
      "post": {
        "description": "NOT ENABLED. Every call answers 409 skin_classifier_not_enabled (body:\nreason and model_card {id, url}; Link header to /model-cards/isic_binary)\nwhile PARTNER_SKIN_CLASSIFIER_ENABLED is off, and always in a sandbox. The\nmodel's malignant recall is 0.411 and its sensitivity differs by\nFitzpatrick skin type. Nothing is read from the image first.\n\nIf it is ever enabled (after validation and a recorded regulatory\ndecision): multipart `file` (JPEG / PNG, at most 10 MB, cleaned in memory,\nnever stored). The answer is never a diagnosis and never a single label:\nnot_a_diagnosis true, the model card id and checkpoint version, every\nclass's temperature-calibrated probability with its MC-dropout sd and 95%\ninterval, the uncertainty summary, the card's must-not list and its\nmeasured performance. 503 + Retry-After while the models load.",
        "operationId": "skin_classification_v1_patients__member_ref__skin_classifications_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_skin_classification_v1_patients__member_ref__skin_classifications_post"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "derm.classify"
            ]
          }
        ],
        "summary": "Classify a skin-lesion photograph (NOT ENABLED: 409 skin_classifier_not_enabled)",
        "tags": [
          "derm_ai"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/social-needs": {
      "get": {
        "description": "The latest submitted AHC-HRSN screen: each domain positive or not, the\npositive findings coded (ICD-10-CM Z-code; SNOMED CT where certain; US\nCore category sdoh), any screen you requested that is still pending, and\nthe closed-loop referrals YOUR practice made. The patient must share their\nmedical history with you (403 medical_history_not_shared). The\ninterpersonal-safety domain never leaves Norvya.",
        "operationId": "social_needs_member_v1_patients__member_ref__social_needs_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnMember"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "social_needs.read"
            ]
          }
        ],
        "summary": "A patient's social needs screen, coded findings and your referrals",
        "tags": [
          "programs"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/social-needs/referrals": {
      "post": {
        "description": "One referral for one finding (codes stamped from the finding at write\ntime, so a later terminology change cannot rewrite history). The patient\nmust share their medical history with you. 422 unknown_finding /\nfinding_not_available (interpersonal safety) / invalid_referral_status.",
        "operationId": "social_needs_referral_create_v1_patients__member_ref__social_needs_referrals_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SnReferralIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnReferral"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "social_needs.write"
            ]
          }
        ],
        "summary": "Create a closed-loop referral to a community organisation",
        "tags": [
          "programs"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/social-needs/screenings": {
      "post": {
        "description": "Creates a request for the AHC-HRSN core screen and sends Norvya's\ngeneric \"Questionnaire from your care team\" push (the instrument name stays\nin the app). 409 patient_muted_clinic when the patient muted your\npractice; 422 screener_not_available for PRAPARE (not built), 422\nscreener_not_supported for anything else. The completed screen raises\nsocial_needs.screening_completed.",
        "operationId": "social_needs_request_v1_patients__member_ref__social_needs_screenings_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreeningRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScreeningRequested"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "social_needs.write"
            ]
          }
        ],
        "summary": "Ask a patient to complete a social needs screen",
        "tags": [
          "programs"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/specialty-checks": {
      "get": {
        "description": "The four direct reads from the specialty hubs, each null when there is\nno result (or the data behind it is not shared: `withheld` lists the\ndomains). egfr: race-free CKD-EPI 2021 as a number with its trend, never a\nstage (ckd_stage is always null with the reason). glp1_thyroid_check: the\nmedullary thyroid cancer / MEN2 contraindication check on the problem\nlist. colonoscopy_interval: the stored surveillance recommendation.\nhf_symptom: the stored heart-failure symptom check.",
        "operationId": "patient_specialty_checks_v1_patients__member_ref__specialty_checks_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EngineReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.specialty.read"
            ]
          }
        ],
        "summary": "eGFR, the GLP-1 thyroid check, the colonoscopy interval and the heart-failure check",
        "tags": [
          "specialty"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/specialty/{hub}": {
      "get": {
        "description": "The results the patient's condition hubs produced (home blood pressure,\nthe heart-failure symptom check, eGFR as a number with its trend, the\nGLP-1 MTC/MEN2 check, neuropathy, asthma control, PEST, RAPID3-style,\nthe colonoscopy interval, reminder plans, questionnaire scores), each\nsection under the patient's sharing switches for you with the domains\nthey have NOT shared listed in `withheld`. Never a KDIGO stage, never a\nrisk score from the left-out list, never item-level answers; 42 CFR Part 2\nquestionnaires never appear. 404 unknown_specialty.",
        "operationId": "patient_specialty_v1_patients__member_ref__specialty__hub__get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "description": "all | cardio | nephro | endo | neuro | pulmo | rheum | gi | other",
            "in": "path",
            "name": "hub",
            "required": true,
            "schema": {
              "description": "all | cardio | nephro | endo | neuro | pulmo | rheum | gi | other",
              "title": "Hub",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EngineReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.specialty.read"
            ]
          }
        ],
        "summary": "A patient's specialty hub results",
        "tags": [
          "specialty"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/patients/{member_ref}/wounds": {
      "get": {
        "description": "Each tracked wound (or burn): location, first and last assessment, the\nassessment count and the date of each assessment. No measurements: the\nwound tracker's measurements are image-based estimates, not a clinician's\nmeasurement, and are not shared with partners. The wound model's\nclassification (wound type, stage, severity, healing trajectory, tissue\npercentages) is not returned. Photographs are not available through the API.\nThe patient must share their skin scans with you (403 consent_not_granted).",
        "operationId": "patient_wounds_v1_patients__member_ref__wounds_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WoundsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "hospital.wounds.read"
            ]
          }
        ],
        "summary": "A patient's wound log: the record and its assessment dates",
        "tags": [
          "hospital_care"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/discharge-episodes": {
      "get": {
        "description": "The day-3 and day-30 contacts (due / overdue / done), the medication\ncomparison counts and the 30-day outcome. An outcome that is null is \"not\nknown\", never \"no\". Patients no longer linked or no longer sharing\nmedications drop out.",
        "operationId": "rx_episodes_v1_pharmacy_discharge_episodes_get",
        "parameters": [
          {
            "description": "open | closed",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "open | closed",
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.patients.read"
            ]
          }
        ],
        "summary": "Your discharge follow-up episodes",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "pharmacy_care.create_episode: the medication comparison is computed by\nmed_reconcile.compare; pre_admission_meds defaults to the patient's list\non file (422 invalid_discharged_from, date_out_of_range,\nmedication_list_invalid).",
        "operationId": "rx_episode_create_v1_pharmacy_discharge_episodes_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EpisodeCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.episodes.write"
            ]
          }
        ],
        "summary": "Open a discharge follow-up episode",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/discharge-episodes/{episode_ref}": {
      "get": {
        "operationId": "rx_episode_v1_pharmacy_discharge_episodes__episode_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.patients.read"
            ]
          }
        ],
        "summary": "One discharge follow-up episode",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/discharge-episodes/{episode_ref}/checks/{which}": {
      "post": {
        "description": "reached or declined completes the check with the items you confirmed;\nany other result is recorded as an attempt (422 invalid_check /\ninvalid_contact_result).",
        "operationId": "rx_episode_check_v1_pharmacy_discharge_episodes__episode_ref__checks__which__post",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "which",
            "required": true,
            "schema": {
              "title": "Which",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EpisodeCheck"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.episodes.write"
            ]
          }
        ],
        "summary": "Record a day-3 or day-30 contact attempt",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/discharge-episodes/{episode_ref}/close": {
      "post": {
        "operationId": "rx_episode_close_v1_pharmacy_discharge_episodes__episode_ref__close_post",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/EpisodeClose"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.episodes.write"
            ]
          }
        ],
        "summary": "Close (or reopen) an episode",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/discharge-episodes/{episode_ref}/medications": {
      "put": {
        "operationId": "rx_episode_meds_v1_pharmacy_discharge_episodes__episode_ref__medications_put",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EpisodeMeds"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.episodes.write"
            ]
          }
        ],
        "summary": "Replace the episode's medication lists (the comparison is recomputed)",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/discharge-episodes/{episode_ref}/outcome": {
      "post": {
        "description": "A readmission or ED visit needs its date inside the 30-day window (422\nevent_date_required / outside_30_day_window / invalid_outcome_source); a\nrecorded event is mirrored once into the care events every consumer reads.",
        "operationId": "rx_episode_outcome_v1_pharmacy_discharge_episodes__episode_ref__outcome_post",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EpisodeOutcome"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.episodes.write"
            ]
          }
        ],
        "summary": "Record the 30-day outcome",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/discharge-episodes/{episode_ref}/resolutions": {
      "post": {
        "operationId": "rx_episode_resolve_v1_pharmacy_discharge_episodes__episode_ref__resolutions_post",
        "parameters": [
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EpisodeResolution"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.episodes.write"
            ]
          }
        ],
        "summary": "Record how one medication difference was resolved",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/medication-reviews/{review_ref}": {
      "get": {
        "operationId": "rx_review_v1_pharmacy_medication_reviews__review_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "review_ref",
            "required": true,
            "schema": {
              "title": "Review Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.patients.read"
            ]
          }
        ],
        "summary": "One medication review",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/medication-reviews/{review_ref}/complete": {
      "post": {
        "operationId": "rx_review_complete_v1_pharmacy_medication_reviews__review_ref__complete_post",
        "parameters": [
          {
            "in": "path",
            "name": "review_ref",
            "required": true,
            "schema": {
              "title": "Review Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/ReviewComplete"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.reviews.write"
            ]
          }
        ],
        "summary": "Complete a medication review",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/medication-reviews/{review_ref}/recommendations": {
      "post": {
        "description": "med_review.add_recommendation (409 review_completed; 404\nfinding_not_found; 422 invalid_intervention_kind / description_required /\ninvalid_prescriber_response).",
        "operationId": "rx_review_recommend_v1_pharmacy_medication_reviews__review_ref__recommendations_post",
        "parameters": [
          {
            "in": "path",
            "name": "review_ref",
            "required": true,
            "schema": {
              "title": "Review Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewRecommendation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.reviews.write"
            ]
          }
        ],
        "summary": "Add a recommendation to a draft review",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/monitoring-due": {
      "get": {
        "description": "care_sites.monitoring_due for every patient who shares medications:\na consensus monitoring schedule (antipsychotics, lithium, valproate,\ncarbamazepine, clozapine ANC, oral terbinafine) overridden per check by an\nactive prescriber order you recorded. It lists what has not been\nRECORDED in Norvya, never that something was not done; the prescriber's\norders win.",
        "operationId": "rx_monitoring_due_v1_pharmacy_monitoring_due_get",
        "parameters": [
          {
            "description": "Comma list of overdue | never_recorded | due_soon | ok | not_needed.",
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": "overdue,never_recorded,due_soon",
              "description": "Comma list of overdue | never_recorded | due_soon | ok | not_needed.",
              "title": "State"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.patients.read"
            ]
          }
        ],
        "summary": "Monitoring due across your patients",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/packing": {
      "get": {
        "description": "pharmacy_ops.packing_queue: active pack cycles due within `days`\n(overdue first), each with the change count against the last verified\npack (the first pack has no baseline and says so).",
        "operationId": "rx_packing_queue_v1_pharmacy_packing_get",
        "parameters": [
          {
            "in": "query",
            "name": "days",
            "required": false,
            "schema": {
              "default": 7,
              "maximum": 60,
              "minimum": 1,
              "title": "Days",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.patients.read"
            ]
          }
        ],
        "summary": "The packing queue",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/patients": {
      "get": {
        "description": "Every active member: whether they share medications with you and, when\nthey do, the pack cycle, the open discharge follow-up episode with its\nnext due contact, and the care site they live at (one of yours). With\npharmacy.adherence.read also the last 7 days' dose counts (taken, skipped\nand unrecorded kept apart; an unrecorded dose is never missed). A member\nwho has not shared medications is listed with every field withheld.",
        "operationId": "rx_patients_v1_pharmacy_patients_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.patients.read"
            ]
          }
        ],
        "summary": "Your pharmacy's patients",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/patients/{member_ref}/adherence": {
      "get": {
        "description": "rx_doses.adherence_summary: confirmed_rate = taken / all due slots (a\nfloor), recorded_rate = taken / (taken + skipped), an estimate over the\nrecorded doses only; unrecorded doses are counted apart and never as\nmissed. Not a proportion of days covered (that needs fill claims). Plus\nevery dose recorded in the window, with who recorded it (patient,\ncaregiver or staff).",
        "operationId": "rx_adherence_v1_pharmacy_patients__member_ref__adherence_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "days",
            "required": false,
            "schema": {
              "default": 30,
              "maximum": 180,
              "minimum": 1,
              "title": "Days",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.adherence.read"
            ]
          }
        ],
        "summary": "A patient's dose log and adherence summary",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/patients/{member_ref}/deliveries": {
      "get": {
        "operationId": "rx_deliveries_v1_pharmacy_patients__member_ref__deliveries_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.patients.read"
            ]
          }
        ],
        "summary": "A patient's confirmed deliveries",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "pharmacy_ops.record_delivery without a photo (422 recipient_required;\n404 cycle_not_found when mark_filled and no cycle).",
        "operationId": "rx_delivery_create_v1_pharmacy_patients__member_ref__deliveries_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeliveryCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.delivery.write"
            ]
          }
        ],
        "summary": "Confirm a delivery at the door",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/patients/{member_ref}/medication-reviews": {
      "get": {
        "operationId": "rx_review_history_v1_pharmacy_patients__member_ref__medication_reviews_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.patients.read"
            ]
          }
        ],
        "summary": "A patient's medication reviews and whether one is due",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "med_review.start_review: the patient's current medicines and the\nautomatic flags (prompts for the pharmacist, not orders). One draft per\npatient: an open draft is refreshed and returned.",
        "operationId": "rx_review_start_v1_pharmacy_patients__member_ref__medication_reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.reviews.write"
            ]
          }
        ],
        "summary": "Start a medication review (or return the open draft)",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/patients/{member_ref}/packing": {
      "get": {
        "operationId": "rx_packing_v1_pharmacy_patients__member_ref__packing_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.patients.read"
            ]
          }
        ],
        "summary": "A patient's pack change report",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/patients/{member_ref}/packing/verify": {
      "post": {
        "description": "pharmacy_ops.verify_pack: every checklist item must be true (422\nchecklist_incomplete); the current list becomes the next baseline;\nmark_filled moves the pack cycle (404 cycle_not_found without one).",
        "operationId": "rx_packing_verify_v1_pharmacy_patients__member_ref__packing_verify_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PackVerify"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.delivery.write"
            ]
          }
        ],
        "summary": "Record a verified pack",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/patients/{member_ref}/sync-plan": {
      "get": {
        "description": "pharmacy_ops.sync_plan: when each medicine runs out and the short fill\nthat reaches one sync date. Quantities assume steady use; estimates for\nthe pharmacist, never an order.",
        "operationId": "rx_sync_plan_v1_pharmacy_patients__member_ref__sync_plan_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sync_date",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Sync Date"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.patients.read"
            ]
          }
        ],
        "summary": "A refill-sync plan from your own fill records",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/pharmacy/refills-due": {
      "get": {
        "description": "Your active pack cycles whose next fill is within `days` (overdue\nincluded), from rx_doses.pack_cycle_dict: next fill = last fill + cycle\ndays; an overdue cycle is reported overdue, never rolled forward.",
        "operationId": "rx_refills_due_v1_pharmacy_refills_due_get",
        "parameters": [
          {
            "in": "query",
            "name": "days",
            "required": false,
            "schema": {
              "default": 7,
              "maximum": 60,
              "minimum": 0,
              "title": "Days",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "member_ref",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Member Ref"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "pharmacy.patients.read"
            ]
          }
        ],
        "summary": "Pack refills due soon or overdue",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/epsdt": {
      "get": {
        "description": "Children your practice holds (guardian-linked child profiles), how\nmany share their record with you, and per EPSDT component how many have\nit due now on Norvya's schedule (epsdt.py). NOT a CMS-416: no eligibility\nmonths, no claims. Vision, hearing and oral health carry\nperiodicity_asserted false (Norvya does not assert those ages).",
        "operationId": "population_epsdt_v1_population_epsdt_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.measures.read"
            ]
          }
        ],
        "summary": "EPSDT components due now for the children of your panel (not a CMS-416), suppressed",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/exports": {
      "post": {
        "description": "Queues an export of every active patient of your practice as one NDJSON\nfile per FHIR resource type (US Core-shaped, the same builders as\nNorvya's provider $export). deidentify=none: identified, each patient\nscoped by their sharing choices with your practice (and your own records\nunder practice-of-record with a BAA), exactly as the provider export.\ndeidentify=safe_harbor: HIPAA Safe Harbor (random per-export patient ids\nthat do not link across exports, dates reduced to the year, birth year\nomitted at 90+, three-digit ZIP, free text removed, record numbers\nremoved, DocumentReference left out), refused if any direct identifier\nsurvives. Poll the status_url or subscribe to population.export_completed.\nOne export at a time per client (409 export_in_progress). Files expire\nafter 24 hours. An identified export needs a BAA on file for your practice\n(409 population_export_baa_required); Safe Harbor does not. Kick-off, completion\nand every file download are chained PHI_EXPORT audit rows (503 when the audit\nlog is down).",
        "operationId": "population_export_start_v1_population_exports_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/PopExportBody"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PopExportAccepted"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.export"
            ]
          }
        ],
        "summary": "Start an asynchronous FHIR Bulk Data export of your panel",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/exports/{export_id}": {
      "delete": {
        "description": "Cancels a running export or deletes a finished one's files. Idempotent\n(204 again for an export already deleted or expired).",
        "operationId": "population_export_delete_v1_population_exports__export_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "export_id",
            "required": true,
            "schema": {
              "title": "Export Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.export"
            ]
          }
        ],
        "summary": "Cancel or delete an export",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      },
      "get": {
        "description": "200 with `status` while it runs and once it ends; the manifest (FHIR\nBulk Data shape: output[{type, url, count}], requiresAccessToken,\ntransactionTime, plus `deidentified`) once completed. 404\nexport_not_found for an export another client or organisation started;\n410 export_expired / export_deleted.",
        "operationId": "population_export_status_v1_population_exports__export_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "export_id",
            "required": true,
            "schema": {
              "title": "Export Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PopExportStatus"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.export"
            ]
          }
        ],
        "summary": "Status and manifest of one export",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/exports/{export_id}/files/{name}": {
      "get": {
        "description": "application/fhir+ndjson, one resource per line. Every download is a\nchained PHI_EXPORT audit row, written BEFORE the file is returned and\nrefused (503) when the audit log is down. 409 export_not_ready while it\nruns; 404 export_file_not_found; 410 once expired or deleted.",
        "operationId": "population_export_file_v1_population_exports__export_id__files__name__get",
        "parameters": [
          {
            "in": "path",
            "name": "export_id",
            "required": true,
            "schema": {
              "title": "Export Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "title": "Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/fhir+ndjson": {},
              "application/json": {
                "schema": {}
              }
            },
            "description": "One NDJSON file."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.export"
            ]
          }
        ],
        "summary": "Download one NDJSON file of a completed export",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/hedis": {
      "get": {
        "description": "No HEDIS specification logic is in Norvya (NCQA requires a licence for\nevery use). A deployment that holds an NCQA licence (HEDIS_LICENSED) and\nuploaded its own measure definitions gets each one computed by the Norvya\ncomputation it binds to, as suppressed cells; otherwise 409\nhedis_not_licensed (or hedis_no_definitions). Never certified.",
        "operationId": "population_hedis_v1_population_hedis_get",
        "parameters": [
          {
            "in": "query",
            "name": "period_start",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Period Start"
            }
          },
          {
            "in": "query",
            "name": "period_end",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Period End"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.measures.read"
            ]
          }
        ],
        "summary": "HEDIS measures for NCQA licensees only (409 hedis_not_licensed otherwise)",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/measures": {
      "get": {
        "description": "Five eCQM-style measures (CMS165v14, CMS122v14, CMS2v15, CMS138v14,\nCMS69v14) and the CDC Million Hearts ABCS, as rates whose numerators and\ndenominators are withheld below min_cell (with complementary\nsuppression). `certified` is always false: this is NOT a certified eCQM\ncalculation (no CQL, no encounters; each measure lists `not_modelled`).\nThe measure identifiers are valid for the 2026 period only\n(`spec_version_valid`). 422 invalid_period / period_too_long.",
        "operationId": "population_measures_v1_population_measures_get",
        "parameters": [
          {
            "description": "YYYY-MM-DD (default: 1 January this year).",
            "in": "query",
            "name": "period_start",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD (default: 1 January this year).",
              "title": "Period Start"
            }
          },
          {
            "description": "YYYY-MM-DD (default: 31 December this year); at most 366 days after period_start.",
            "in": "query",
            "name": "period_end",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD (default: 31 December this year); at most 366 days after period_start.",
              "title": "Period End"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PopulationMeasures"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.measures.read"
            ]
          }
        ],
        "summary": "Quality measures and Million Hearts ABCS for your panel (not certified)",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/measures/qrda3": {
      "get": {
        "description": "The QRDA III document from Norvya's quality-measures engine: TRUE\ncounts (a submission with suppressed counts would be invalid), labelled\nNOT SUBMISSION-VALIDATED, with no CMS EHR Certification ID (Norvya is not\nONC-certified). X-Norvya-Validation-Gaps lists what keeps it from\nvalidating. 2026 performance period only (422\nmeasure_version_unavailable). Every download is a chained PHI_EXPORT\naudit row and is refused (503) when the audit log is down.",
        "operationId": "population_qrda3_v1_population_measures_qrda3_get",
        "parameters": [
          {
            "description": "YYYY-MM-DD, within 2026.",
            "in": "query",
            "name": "period_start",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD, within 2026.",
              "title": "Period Start"
            }
          },
          {
            "description": "YYYY-MM-DD, within 2026.",
            "in": "query",
            "name": "period_end",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD, within 2026.",
              "title": "Period End"
            }
          },
          {
            "description": "MIPS_GROUP | MIPS_INDIV",
            "in": "query",
            "name": "program",
            "required": false,
            "schema": {
              "default": "MIPS_GROUP",
              "description": "MIPS_GROUP | MIPS_INDIV",
              "title": "Program",
              "type": "string"
            }
          },
          {
            "description": "9-digit TIN (default: the practice's).",
            "in": "query",
            "name": "tin",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 11,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "9-digit TIN (default: the practice's).",
              "title": "Tin"
            }
          },
          {
            "description": "10-digit NPI (MIPS_INDIV).",
            "in": "query",
            "name": "npi",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 10,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "10-digit NPI (MIPS_INDIV).",
              "title": "Npi"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              },
              "application/xml": {}
            },
            "description": "QRDA Category III XML (NOT SUBMISSION-VALIDATED)."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.measures.export"
            ]
          }
        ],
        "summary": "QRDA Category III file for the 2026 period (true counts, not submission-validated)",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/readiness": {
      "get": {
        "description": "readiness_unit's COMMAND tier: physiology, training-load and duty\nstatus distributions over members who share biometrics with the unit;\nnothing at all below agg_min_cell members, small cells and dominance\nwithheld, no questionnaire or behavioural-health field (asserted in\ncode), no individual. `projection.available` is always false: Norvya\nholds no military parameter set and refuses to project. A conversation\nstarter, not a duty-status or deployability determination. 409\nnot_a_unit for any other organisation.",
        "operationId": "population_readiness_v1_population_readiness_get",
        "parameters": [
          {
            "description": "YYYY-MM-DD (default today).",
            "in": "query",
            "name": "as_of",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD (default today).",
              "title": "As Of"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "programs.readiness.read"
            ]
          }
        ],
        "summary": "Unit readiness as counts only (military units and first responders); never a projection",
        "tags": [
          "readiness"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/social-needs": {
      "get": {
        "description": "Screening rate, any unmet need, each domain's positive rate (housing,\nfood, transportation, utilities), your referrals by status with the\nclosed and needs-met rates, and members with a need you have not\nreferred. Counts as cells, primary + complementary suppression; members\nwho do not share their medical history are counted, never examined.",
        "operationId": "population_social_needs_v1_population_social_needs_get",
        "parameters": [
          {
            "description": "YYYY-MM-DD (default: 365 days before end).",
            "in": "query",
            "name": "start",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD (default: 365 days before end).",
              "title": "Start"
            }
          },
          {
            "description": "YYYY-MM-DD (default: today).",
            "in": "query",
            "name": "end",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD (default: today).",
              "title": "End"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.aggregate.read"
            ]
          }
        ],
        "summary": "Social needs prevalence and closed-loop rates for your panel, small cells suppressed",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/summary": {
      "get": {
        "description": "Panel size; patients by worklist priority tier and rising risk from the\nlatest completed worklist run (named, with when it finished); open care\ngaps by measure and gap code for the current measurement year. Counts\nonly: no member_refs, no ids, no free text. Every count from 1 to\nmin_cell - 1 is withheld, and further cells are withheld when one could\notherwise be recovered by subtracting from a total (the `suppression`\nfield says how). Medical practices only (409 not_a_medical_practice).",
        "operationId": "population_summary_v1_population_summary_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PopulationSummary"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.aggregate.read"
            ]
          }
        ],
        "summary": "Aggregate picture of your whole panel, small cells suppressed",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/uds": {
      "get": {
        "description": "Tables 3A, 3B, 4, 6A and the 6B / 7 measures Norvya computes, with\ncompleteness and what is out of scope, from uds_reporting. Labelled\n\"UDS-aligned, not validated in the EHBs/UDS+ test environment\". PRIMARY\nsmall-cell suppression only (the staff screen's rule; `suppression` says\nwhy); true counts only through /population/uds/export.",
        "operationId": "population_uds_v1_population_uds_get",
        "parameters": [
          {
            "description": "Calendar year (default: last year).",
            "in": "query",
            "name": "year",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Calendar year (default: last year).",
              "title": "Year"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.measures.read"
            ]
          }
        ],
        "summary": "HRSA UDS tables Norvya can contribute to (UDS-aligned, not validated), small cells suppressed",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/uds-plus": {
      "get": {
        "description": "fhir_bulk.uds_plus_export (the one FHIR builder): one Patient per UDS\npatient under a per-clinic token, the patient's clinical resources within\ntheir sharing choices, 42 CFR Part 2 resources always withheld, the\nidentifier scan before release. Shaped to HRSA UDS+ FHIR IG 2.0.0 but NOT\nvalidated in HRSA's UDS+ test receiver (`profile_claimed` false). A\nchained PHI_EXPORT row first; 503 when the audit log is down; 500\nexport_identifier_detected if a direct identifier is found.",
        "operationId": "population_uds_plus_v1_population_uds_plus_get",
        "parameters": [
          {
            "in": "query",
            "name": "year",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Year"
            }
          },
          {
            "description": "none (tokenised UDS+ shape: pseudonymous patient ids, coded demographics) | safe_harbor (additionally HIPAA Safe Harbor)",
            "in": "query",
            "name": "deid",
            "required": false,
            "schema": {
              "default": "none",
              "description": "none (tokenised UDS+ shape: pseudonymous patient ids, coded demographics) | safe_harbor (additionally HIPAA Safe Harbor)",
              "title": "Deid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              },
              "application/zip": {}
            },
            "description": "UDS+ shaped FHIR NDJSON files + manifest (zip)."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.measures.export"
            ]
          }
        ],
        "summary": "UDS+ patient-level FHIR export (health centres; audited, fails closed)",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/population/uds/export": {
      "get": {
        "description": "The staff export: TRUE counts (a UDS submission cannot carry suppressed\ncells). 409 uds_not_health_center unless your UDS settings declare a\nhealth centre. A chained PHI_EXPORT row first; 503 when the audit log is\ndown.",
        "operationId": "population_uds_export_v1_population_uds_export_get",
        "parameters": [
          {
            "in": "query",
            "name": "year",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Year"
            }
          },
          {
            "description": "json | csv",
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "default": "json",
              "description": "json | csv",
              "title": "Format",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              },
              "text/csv": {}
            },
            "description": "UDS tables, TRUE counts (UDS-aligned, not validated)."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "population.measures.export"
            ]
          }
        ],
        "summary": "UDS tables with true counts (health centres; audited, fails closed)",
        "tags": [
          "population"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/practice/benefits/worklist": {
      "get": {
        "description": "The clinic benefits worklist (benefits.clinic_worklist): transport\nrequests and home-modification (HCBS) needs on OPEN community referrals,\neach with its member_ref and the sdoh_referral_ref of the referral it\nrides on, for patients who share their medical history with you (the\nsocial-needs family's gate). Norvya books no ride, authorises no service\nand determines no eligibility; every row says so.",
        "operationId": "practice_benefits_worklist_v1_practice_benefits_worklist_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EngineReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "programs.benefits.read"
            ]
          }
        ],
        "summary": "Your benefits-coordination worklist (transport, home modification)",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/practice/clinicians/credentials": {
      "get": {
        "description": "The active clinical staff (admin, provider, pharmacist, therapist) as\nstaff_ref values with the licence fields Norvya holds on their account:\nlicence number, US state or issuing country and authority (DHA, DoH,\nMOHAP ... outside the US, where there is no NPI and no state), NPI, and\nwhether Norvya verified the professional (verified_professional, from the\nclinician registration review). Norvya does not track licence expiry on\nthe account and does not re-verify against a board here. Staff details\nare not patient data.",
        "operationId": "practice_clinician_credentials_v1_practice_clinicians_credentials_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EngineReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.credentials.read"
            ]
          }
        ],
        "summary": "Your clinicians with their licence and NPI fields",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/practice/morning-brief": {
      "get": {
        "description": "The members on the clinician's schedule that day (Norvya appointments,\nelse the practice's planned visits from a panel import, which are the\npractice's day, not the clinician's), each with what changed since their\nlast visit, their open referrals and the suggested labs to confirm\n(nothing is ordered). Read on what the practice may use for each member.\nAt most 40 members. 404 clinician_not_found.",
        "operationId": "practice_morning_brief_v1_practice_morning_brief_get",
        "parameters": [
          {
            "description": "staff_ref of a clinician of your practice (GET /v1/practice/clinicians/credentials or /v1/scheduling/settings).",
            "in": "query",
            "name": "clinician",
            "required": true,
            "schema": {
              "description": "staff_ref of a clinician of your practice (GET /v1/practice/clinicians/credentials or /v1/scheduling/settings).",
              "title": "Clinician",
              "type": "string"
            }
          },
          {
            "description": "YYYY-MM-DD; default today.",
            "in": "query",
            "name": "date",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD; default today.",
              "title": "Date"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EngineReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.morning_brief.read"
            ]
          }
        ],
        "summary": "One clinician's morning brief for a day",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/practice/outcomes-report": {
      "get": {
        "description": "The programme outcomes report (engagement, retention, paired measures,\nquestionnaire change, adherence, transitions) over a window: cohort\ncounts, proportions and medians with intervals and completeness, each\nbelow the small-cell minimum withheld (status too_small when the whole\ncohort is). Observational framing on every report. 422\noutcomes_invalid_compare / outcomes_invalid_date.",
        "operationId": "practice_outcomes_report_v1_practice_outcomes_report_get",
        "parameters": [
          {
            "description": "YYYY-MM-DD",
            "in": "query",
            "name": "start",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD",
              "title": "Start"
            }
          },
          {
            "description": "YYYY-MM-DD; default today",
            "in": "query",
            "name": "end",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD; default today",
              "title": "End"
            }
          },
          {
            "description": "Comma list; default every applicable metric (see available_metrics).",
            "in": "query",
            "name": "metrics",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma list; default every applicable metric (see available_metrics).",
              "title": "Metrics"
            }
          },
          {
            "description": "first_vs_last_30d (default) | pre_post_enrolment",
            "in": "query",
            "name": "compare",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "first_vs_last_30d (default) | pre_post_enrolment",
              "title": "Compare"
            }
          },
          {
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Lang"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EngineReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.reports.read"
            ]
          }
        ],
        "summary": "Your programme outcomes report (aggregates, JSON)",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/practice/outcomes-report/content": {
      "get": {
        "description": "The same report as the JSON call, rendered by the builder behind the\npractice's own PDF download; small cells withheld, observational framing\nprinted. Audited as an export before it is returned.",
        "operationId": "practice_outcomes_report_pdf_v1_practice_outcomes_report_content_get",
        "parameters": [
          {
            "description": "YYYY-MM-DD",
            "in": "query",
            "name": "start",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD",
              "title": "Start"
            }
          },
          {
            "description": "YYYY-MM-DD; default today",
            "in": "query",
            "name": "end",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD; default today",
              "title": "End"
            }
          },
          {
            "description": "Comma list (see the JSON call).",
            "in": "query",
            "name": "metrics",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma list (see the JSON call).",
              "title": "Metrics"
            }
          },
          {
            "description": "first_vs_last_30d (default) | pre_post_enrolment",
            "in": "query",
            "name": "compare",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "first_vs_last_30d (default) | pre_post_enrolment",
              "title": "Compare"
            }
          },
          {
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Lang"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              },
              "application/pdf": {}
            },
            "description": "The PDF."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.reports.read"
            ]
          }
        ],
        "summary": "Your programme outcomes report as a PDF",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/practice/outreach-drafts": {
      "get": {
        "description": "One draft per OPEN finding in your latest worklist run (the wording\nlibrary the annual review prints, in the patient's language, framed with\na greeting and \"reply to this message\"; never the clinician reason text\nor a number). Urgent and practice-internal findings, and patients who\nturned messages off, are skipped and counted. Nothing is sent: send the\nbody with POST /v1/members/{member_ref}/messages (messages.write) and\nmark the finding with POST /v1/panel/worklist/items/{item_ref}/triage.",
        "operationId": "practice_outreach_drafts_v1_practice_outreach_drafts_get",
        "parameters": [
          {
            "description": "Only this patient.",
            "in": "query",
            "name": "member_ref",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Only this patient.",
              "title": "Member Ref"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EngineReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.outreach.read"
            ]
          }
        ],
        "summary": "Rule-based message drafts for open worklist findings",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/practice/value-report": {
      "get": {
        "description": "The proof-of-value report Norvya's practice owners see: blood pressure,\nHbA1c and LDL control, follow-up, findings raised and closed, care gaps\nand engagement between two stored worklist snapshots. Aggregates only;\nevery count from 1 to min_cell - 1 is withheld by the engine. Printed\nframing: observational, this practice only, not a controlled comparison.\nNo dollar figure. 422 value_report_invalid_period.",
        "operationId": "practice_value_report_v1_practice_value_report_get",
        "parameters": [
          {
            "description": "YYYY-Qn | since_joining; default the last full quarter.",
            "in": "query",
            "name": "period",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-Qn | since_joining; default the last full quarter.",
              "title": "Period"
            }
          },
          {
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Lang"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EngineReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.reports.read"
            ]
          }
        ],
        "summary": "Your practice's quarterly value report (aggregates, JSON)",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/practice/value-report/content": {
      "get": {
        "description": "The same report as the JSON call, rendered by the builder behind the\npractice owner's own PDF download. Aggregates only (small cells withheld\nby the engine); audited as an export before it is returned.",
        "operationId": "practice_value_report_pdf_v1_practice_value_report_content_get",
        "parameters": [
          {
            "description": "YYYY-Qn | since_joining; default the last full quarter.",
            "in": "query",
            "name": "period",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-Qn | since_joining; default the last full quarter.",
              "title": "Period"
            }
          },
          {
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Lang"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              },
              "application/pdf": {}
            },
            "description": "The PDF."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "clinical.reports.read"
            ]
          }
        ],
        "summary": "Your practice's quarterly value report as a PDF",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/practices": {
      "get": {
        "description": "Every practice with an ACTIVE approval of your integration: its\npractice_ref (ask POST /v1/oauth/token for practice=<practice_ref>), its\nname, the scopes it approved and when. Nothing else about the practice and\nnothing about its patients. Needs a vendor-level token (requested without\npractice); a practice-bound token gets 403 insufficient_scope.",
        "operationId": "vendor_practice_list_v1_practices_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PracticesResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "vendor.practices.read"
            ]
          }
        ],
        "summary": "EMR vendors: the practices that approved your integration",
        "tags": [
          "platform"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/case-reporting": {
      "get": {
        "description": "Whether case reporting is active for your organisation and, if not,\nwhat is missing; the trigger-code release Norvya matches against (the\nCSTE / CDC / APHL eRSD; Norvya ships no condition list of its own); what\ntrigger matching can and cannot see; and what is not claimed.",
        "operationId": "ph_ecr_status_v1_public_health_case_reporting_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcrStatus"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.case_reports.read"
            ]
          }
        ],
        "summary": "Electronic case reporting readiness",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/case-reports": {
      "get": {
        "operationId": "ph_ecr_reports_v1_public_health_case_reports_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcrReportList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.case_reports.read"
            ]
          }
        ],
        "summary": "Your eICRs and the Reportability Responses that came back",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/case-reports/candidates": {
      "get": {
        "operationId": "ph_ecr_candidates_v1_public_health_case_reports_candidates_get",
        "parameters": [
          {
            "description": "candidate | confirmed | dismissed | sent | failed",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "candidate | confirmed | dismissed | sent | failed",
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 300,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcrCandidateList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.case_reports.read"
            ]
          }
        ],
        "summary": "Case-report candidates waiting for review, and their history",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/case-reports/candidates/{candidate_ref}/build": {
      "post": {
        "description": "Builds the FHIR eICR (hl7.fhir.us.ecr 2.1.2) from the patient's record\nthrough Norvya's one FHIR builder and stores it encrypted, ready to\ntransmit. 42 CFR Part 2 records are always withheld; clinical detail\nbehind a closed sharing flag is withheld unless a clinician recorded an\noverride. The document itself is not returned. Audited as a disclosure\n(fail closed). 409 candidate_not_confirmed.",
        "operationId": "ph_ecr_build_v1_public_health_case_reports_candidates__candidate_ref__build_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_ref",
            "required": true,
            "schema": {
              "title": "Candidate Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcrBuildResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.case_reports.write"
            ]
          }
        ],
        "summary": "Build the eICR for a confirmed candidate",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/case-reports/candidates/{candidate_ref}/review": {
      "post": {
        "description": "Your clinician's decision, recorded from your system. A candidate whose\ntrigger data the patient keeps closed (sharing_blocked) cannot be\nconfirmed here: overriding a patient's sharing choice needs a clinician's\nrecorded reason inside Norvya (409 override_requires_clinician). A sent\ncandidate cannot be changed (409 already_sent).",
        "operationId": "ph_ecr_review_v1_public_health_case_reports_candidates__candidate_ref__review_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_ref",
            "required": true,
            "schema": {
              "title": "Candidate Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EcrReviewBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcrCandidate"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.case_reports.write"
            ]
          }
        ],
        "summary": "Confirm or dismiss a case-report candidate",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/case-reports/{report_ref}": {
      "get": {
        "operationId": "ph_ecr_report_v1_public_health_case_reports__report_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "report_ref",
            "required": true,
            "schema": {
              "title": "Report Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcrReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.case_reports.read"
            ]
          }
        ],
        "summary": "One eICR and its Reportability Response",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/case-reports/{report_ref}/response": {
      "post": {
        "description": "For organisations whose own system receives the RR. A FHIR RR is read\nfor its determinations; a CDA RR is stored and marked not parsed. 413\nfile_too_large; 415 unsupported_media_type; 422 unreadable_response.",
        "operationId": "ph_ecr_response_v1_public_health_case_reports__report_ref__response_post",
        "parameters": [
          {
            "in": "path",
            "name": "report_ref",
            "required": true,
            "schema": {
              "title": "Report Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/fhir+json": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            },
            "application/hl7-cda+xml": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            },
            "application/json": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            },
            "application/xml": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            },
            "text/xml": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            }
          },
          "description": "The Reportability Response document as public health sent it: a FHIR Bundle (JSON) or a CDA document (XML, stored but not parsed). At most 20 MB.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcrReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.case_reports.write"
            ]
          }
        ],
        "summary": "File the Reportability Response public health sent",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/case-reports/{report_ref}/transmit": {
      "post": {
        "description": "Hands the stored eICR to your organisation's configured adapter (Direct\nto the AIMS platform, or a drop directory your bridge collects). An\nexplicit act, audited before it leaves and refused when the audit log is\ndown. 409 already_sent; 409 document_not_stored; a failed hand-off marks\nthe report failed and answers 503 with the adapter's code.",
        "operationId": "ph_ecr_transmit_v1_public_health_case_reports__report_ref__transmit_post",
        "parameters": [
          {
            "in": "path",
            "name": "report_ref",
            "required": true,
            "schema": {
              "title": "Report Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcrReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.case_reports.write"
            ]
          }
        ],
        "summary": "Transmit a built eICR to public health",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/iis": {
      "get": {
        "description": "Whether a dose report or history query would be transmitted right now,\nand if not, why: the connection's status, the state, whether an\nadministrator attested to the state's data-exchange agreement, and the\nonboarding steps still missing. Never the endpoint, the user name, the\npassword or the facility id. Activation itself is done by your\norganisation's administrator in Norvya, not through the API.",
        "operationId": "ph_iis_status_v1_public_health_iis_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IisStatus"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.immunizations.read"
            ]
          }
        ],
        "summary": "Your immunization registry connection: readiness, never credentials",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/iis/submissions": {
      "get": {
        "description": "Newest first: dose reports (VXU) and history queries (QBP) your\norganisation sent — through the API or from Norvya's own screens — with\nthe registry's ACK code, Norvya's retry state (5 min, 30 min, 2 h, 12 h,\n24 h; then failed_permanent) and the review queue (needs_review: a data\nproblem the registry reported, never retried automatically). Patients no\nlonger linked to you are left out.",
        "operationId": "ph_iis_submissions_v1_public_health_iis_submissions_get",
        "parameters": [
          {
            "description": "Filter by status, e.g. needs_review.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by status, e.g. needs_review.",
              "title": "Status"
            }
          },
          {
            "description": "VXU | QBP",
            "in": "query",
            "name": "message_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "VXU | QBP",
              "title": "Message Type"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IisSubmissionList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.immunizations.read"
            ]
          }
        ],
        "summary": "Your registry submissions and their acknowledgements",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/iis/submissions/{submission_ref}": {
      "get": {
        "description": "Status, ACK code and retry state of one submission. Another\norganisation's submission and an unknown ref are the same 404\niis_submission_not_found.",
        "operationId": "ph_iis_submission_v1_public_health_iis_submissions__submission_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "submission_ref",
            "required": true,
            "schema": {
              "title": "Submission Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IisSubmissionOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.immunizations.read"
            ]
          }
        ],
        "summary": "One registry submission",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/syndromic/messages": {
      "get": {
        "description": "Each message: trigger, control id, jurisdiction, status, time, any\nwarnings (age_not_recorded, disposition_not_recorded). No patient\nreference beyond the visit_ref you already hold.",
        "operationId": "ph_syn_messages_v1_public_health_syndromic_messages_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynMessageList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.syndromic.read"
            ]
          }
        ],
        "summary": "What was sent where (no patient data)",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/syndromic/status": {
      "get": {
        "description": "What is configured and what is missing before your organisation can\nsend: the facility registration and its NSSP onboarding attestation, the\njurisdiction, the syndromic endpoint. Built against the PHIN Messaging\nGuide R1.1 + 2012 addendum and not NIST-validated (see not_claimed).",
        "operationId": "ph_syn_status_v1_public_health_syndromic_status_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynStatus"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.syndromic.read"
            ]
          }
        ],
        "summary": "Syndromic surveillance readiness",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/syndromic/visits": {
      "get": {
        "operationId": "ph_syn_visits_v1_public_health_syndromic_visits_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynVisitList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.syndromic.read"
            ]
          }
        ],
        "summary": "Visits on file",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "The encounter as your facility records it, keyed on your visit number\n(recording the same number again updates it). Chief complaint in the\npatient's own words: Norvya never derives one, and a visit without it is\nnever sent. Nothing is sent by recording. 409 syndromic_not_onboarded;\n409 visit_number_in_use (that number belongs to another patient).",
        "operationId": "ph_syn_record_v1_public_health_syndromic_visits_post",
        "parameters": [
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SynVisitBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynVisit"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.syndromic.write"
            ]
          }
        ],
        "summary": "Record an emergency or urgent-care visit",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/public-health/syndromic/visits/{visit_ref}/send": {
      "post": {
        "description": "Builds the HL7 v2.5.1 ADT (A01 / A03 / A04 / A08) and hands it to your\nendpoint's adapter — one explicit send; Norvya never transmits on its own.\nThe same content for the same visit and trigger is refused (409\nduplicate_message: double counting inflates a surveillance signal); 409\nchief_complaint_missing. Audited before it leaves, refused when the audit\nlog is down.",
        "operationId": "ph_syn_send_v1_public_health_syndromic_visits__visit_ref__send_post",
        "parameters": [
          {
            "in": "path",
            "name": "visit_ref",
            "required": true,
            "schema": {
              "title": "Visit Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SynSendBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynMessage"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "public_health.syndromic.write"
            ]
          }
        ],
        "summary": "Send one visit's syndromic ADT message",
        "tags": [
          "public_health"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/outcomes-summary": {
      "get": {
        "description": "pt_outcomes.practice_summary over the patients who share their medical\nhistory with you (the staff route's population); counts below the\nsmall-cell minimum are suppressed by the engine.",
        "operationId": "rehab_outcomes_summary_v1_rehab_outcomes_summary_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.read"
            ]
          }
        ],
        "summary": "Your practice's PT outcome summary (aggregate, small cells withheld)",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/episodes": {
      "get": {
        "description": "Every recovery episode the patient has in Norvya (the same list your\nstaff see): discipline, lead therapist (staff_ref when one of yours),\nweight-bearing and precautions (set only by clinical staff), milestones the\npatient recorded, the latest warning-sign check lane and the episode's\noutcome measures. Phases are general education; none exist for OT / SLP\nconditions (no source was read for a timeline).",
        "operationId": "rehab_episodes_v1_rehab_patients__member_ref__episodes_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.read"
            ]
          }
        ],
        "summary": "A patient's recovery episodes (PT / OT / speech)",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/episodes/{episode_ref}": {
      "get": {
        "operationId": "rehab_episode_get_v1_rehab_patients__member_ref__episodes__episode_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.read"
            ]
          }
        ],
        "summary": "One recovery episode",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/episodes/{episode_ref}/care": {
      "put": {
        "description": "rehab_disciplines.set_episode_care, as the staff screen. The lead\ntherapist is a staff_ref of your practice (empty string clears it). An\nepisode another practice holds is 409 episode_held_by_another_practice.",
        "operationId": "rehab_episode_care_v1_rehab_patients__member_ref__episodes__episode_ref__care_put",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EpisodeCareIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.write"
            ]
          }
        ],
        "summary": "Set an episode's discipline and lead therapist",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/episodes/{episode_ref}/outcome-measures": {
      "post": {
        "description": "Two kinds, never mixed. A CLINICIAN-RATED measure (FOIS, Nine-Hole Peg\nTest) is recorded with `values` for the named clinician and scored by\nNorvya (rehab_disciplines.record_clinician_measure). A PATIENT-REPORTED PT\nmeasure (ODI, LEFS, QuickDASH, NDI: licensed, available only where this\ndeployment holds the licence) is REQUESTED: the patient answers it in\nNorvya, scored server-side through the same questionnaire path as every\nrequest (idempotent with external_id; the same generic push; the\ninstrument.completed event when answered). `values` on a patient-reported\nmeasure is 422 patient_reported_measure_cannot_be_entered.",
        "operationId": "rehab_outcome_measure_v1_rehab_patients__member_ref__episodes__episode_ref__outcome_measures_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OutcomeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.write"
            ]
          }
        ],
        "summary": "Request or record an outcome measure for an episode",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/episodes/{episode_ref}/restrictions": {
      "put": {
        "description": "rehab_episodes.set_restrictions with the named clinician as the author.\nThe patient sees them as set by their care team; the app never infers or\nrelaxes one.",
        "operationId": "rehab_episode_restrictions_v1_rehab_patients__member_ref__episodes__episode_ref__restrictions_put",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "episode_ref",
            "required": true,
            "schema": {
              "title": "Episode Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestrictionsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.write"
            ]
          }
        ],
        "summary": "Set weight-bearing status and precautions (a named clinician's order)",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/goals": {
      "get": {
        "description": "Goals in the therapist's own words by domain, with the patient's 0-10\nrating of how close each feels (at most one a day). ?goal_ref= narrows to\none (the rehab.goal_met event's resource_url).",
        "operationId": "rehab_goals_v1_rehab_patients__member_ref__goals_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "goal_ref",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Goal Ref"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.read"
            ]
          }
        ],
        "summary": "A patient's functional goals and their own ratings",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "operationId": "rehab_goal_create_v1_rehab_patients__member_ref__goals_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoalIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.write"
            ]
          }
        ],
        "summary": "Create a functional goal",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/goals/{goal_ref}": {
      "patch": {
        "description": "rehab_disciplines.update_goal. Marking a goal met sends rehab.goal_met to\nyour subscribed endpoints (once per goal). Another practice's goal is 409\ngoal_set_by_another_practice.",
        "operationId": "rehab_goal_update_v1_rehab_patients__member_ref__goals__goal_ref__patch",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "goal_ref",
            "required": true,
            "schema": {
              "title": "Goal Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoalUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.write"
            ]
          }
        ],
        "summary": "Update a goal your practice set (status met / discontinued, text, target date)",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/home-programs": {
      "get": {
        "description": "The active program per discipline (pt / ot / slp) with its exercises and\nadherence over the last 28 days as RECORDED days and fully-completed days\n(OT / SLP: how hard the recorded days felt, the patient's own word). There\nis deliberately no missed-day count: a day with nothing recorded is\nunknown.",
        "operationId": "rehab_home_programs_v1_rehab_patients__member_ref__home_programs_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.read"
            ]
          }
        ],
        "summary": "A patient's home exercise programs and recorded days",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "pain_care.start_program with the named clinician as the assigner, as the\nstaff screens do: one active program per discipline (the focus decides\nit), validated exercises and doses.",
        "operationId": "rehab_home_program_assign_v1_rehab_patients__member_ref__home_programs_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/routers__partner_api_rehab_nutrition__ProgramIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.write"
            ]
          }
        ],
        "summary": "Assign a home exercise program (replaces the discipline's active one)",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/home-programs/{discipline}/end": {
      "post": {
        "description": "Only a program your practice assigned (a self-started or another\npractice's program is 409 program_held_elsewhere).",
        "operationId": "rehab_home_program_end_v1_rehab_patients__member_ref__home_programs__discipline__end_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "discipline",
            "required": true,
            "schema": {
              "title": "Discipline",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/_Clinician"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.write"
            ]
          }
        ],
        "summary": "End your practice's active home program for a discipline",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/home-safety": {
      "get": {
        "description": "The patient's answers (yes / no / na), the items an OT recommended and\ncounts only. It is NOT a fall-risk score and produces no number.",
        "operationId": "rehab_home_safety_v1_rehab_patients__member_ref__home_safety_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.read"
            ]
          }
        ],
        "summary": "A patient's home-safety checklist (CDC STEADI; no score)",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/home-safety/recommendations": {
      "put": {
        "operationId": "rehab_home_safety_recommend_v1_rehab_patients__member_ref__home_safety_recommendations_put",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SafetyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.write"
            ]
          }
        ],
        "summary": "Recommend home-safety items (replaces the list)",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/iddsi": {
      "get": {
        "description": "The levels a clinician set (only clinical staff set them; the app never\nchanges or infers a level), with the IDDSI framework attribution.",
        "operationId": "rehab_iddsi_v1_rehab_patients__member_ref__iddsi_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.read"
            ]
          }
        ],
        "summary": "A patient's current IDDSI food and drink levels",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      },
      "put": {
        "description": "rehab_disciplines.set_iddsi: the new order replaces the active one.",
        "operationId": "rehab_iddsi_set_v1_rehab_patients__member_ref__iddsi_put",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IddsiIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.write"
            ]
          }
        ],
        "summary": "Set IDDSI food and / or drink levels (a named clinician's order)",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/iddsi/end": {
      "post": {
        "operationId": "rehab_iddsi_end_v1_rehab_patients__member_ref__iddsi_end_post",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/_Clinician"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.write"
            ]
          }
        ],
        "summary": "End the IDDSI levels your practice set",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rehab/patients/{member_ref}/outcome-measures": {
      "get": {
        "description": "Per episode: each PT measure's baseline, follow-up, change and whether\nthe published MCID (cited next to it) was reached (pt_outcomes; a\nprovisional follow-up is an interval, not a discharge). Plus the\nclinician-rated measures recorded for the patient, and which measures this\ndeployment can request or record.",
        "operationId": "rehab_outcomes_v1_rehab_patients__member_ref__outcome_measures_get",
        "parameters": [
          {
            "in": "path",
            "name": "member_ref",
            "required": true,
            "schema": {
              "title": "Member Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "rehab.read"
            ]
          }
        ],
        "summary": "Episode outcome measures and recorded clinician measures",
        "tags": [
          "rehab"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rosters": {
      "get": {
        "description": "Newest first; rosters YOUR client uploaded. Counts only.",
        "operationId": "roster_list_v1_rosters_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RosterList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.roster.read"
            ]
          }
        ],
        "summary": "Your rosters",
        "tags": [
          "roster"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "Parses the roster in the request, classifies every row (to invite,\nalready a member, opted out, duplicate, invalid, not eligible today, no\ncontact) and stages it. Nothing is sent until commit. MBIs and plan member\nids are fingerprinted, birth dates and last names validated and dropped;\naddresses are kept as keyed hashes and, encrypted, only until delivered.\nNever says whether an address has a Norvya account.",
        "operationId": "roster_upload_v1_rosters_post",
        "parameters": [
          {
            "in": "query",
            "name": "filename",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 200,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Filename"
            }
          },
          {
            "description": "Default for rows without one.",
            "in": "query",
            "name": "language",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Default for rows without one.",
              "title": "Language"
            }
          },
          {
            "description": "Default cohort label.",
            "in": "query",
            "name": "cohort",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 64,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Default cohort label.",
              "title": "Cohort"
            }
          },
          {
            "in": "query",
            "name": "expires_in_days",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maximum": 30,
                  "minimum": 1,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Expires In Days"
            }
          },
          {
            "description": "Comma list of sections you will ask for (recorded only).",
            "in": "query",
            "name": "sharing_request",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma list of sections you will ask for (recorded only).",
              "title": "Sharing Request"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-ndjson": {
              "example": "{\"external_id\":\"M-1003\",\"email\":\"kim@example.com\",\"language\":\"ko\",\"cohort\":\"Hypertension\"}\n",
              "schema": {
                "type": "string"
              }
            },
            "text/csv": {
              "example": "external_id,first_name,last_name,email,phone,language,date_of_birth,mbi,cohort\nM-1001,Ana,Lopez,ana@example.com,,es,1958-02-11,1EG4TE5MK73,Diabetes prevention\nM-1002,Sam,Lee,,+15551230000,en,1961-07-30,,Diabetes prevention\n",
              "schema": {
                "type": "string"
              }
            }
          },
          "description": "The roster as the raw body: text/csv (header row) or application/x-ndjson (one JSON object per line). Fields: external_id, first_name, last_name, email, phone (E.164), language (en es fr de it zh ja pt ar hi ko ur id vi th ru fa), date_of_birth (YYYY-MM-DD), mbi, plan_member_id, cohort. A CMS eligibility / attribution CSV (MBI, alignment dates, status) is accepted as is. At most 10 MB / 50,000 rows.",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RosterOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.roster.write"
            ]
          }
        ],
        "summary": "Upload a roster of eligible members and get its dry run",
        "tags": [
          "roster"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rosters/{roster_ref}": {
      "get": {
        "operationId": "roster_get_v1_rosters__roster_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "roster_ref",
            "required": true,
            "schema": {
              "title": "Roster Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RosterOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.roster.read"
            ]
          }
        ],
        "summary": "One roster: dry run, progress, result",
        "tags": [
          "roster"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rosters/{roster_ref}/commit": {
      "post": {
        "description": "One invitation per row, in the person's language (Norvya's email with\na decline link, your organisation's branding), in the background. Open\ninvitations to the same address are reused (no second email); people who\ndeclined you are skipped. When the daily cap (PARTNER_INVITES_PER_DAY,\nshared with single invitations) is reached the remaining rows stay queued\nand go out on the following UTC days: none is dropped (status inviting,\nresult.queued). Phone-only rows: collect their links from join-links.\n409 roster_not_staged / roster_nothing_to_invite / organisation_not_joinable.",
        "operationId": "roster_commit_v1_rosters__roster_ref__commit_post",
        "parameters": [
          {
            "in": "path",
            "name": "roster_ref",
            "required": true,
            "schema": {
              "title": "Roster Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RosterOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.roster.write"
            ]
          }
        ],
        "summary": "Commit a staged roster: Norvya invites its people",
        "tags": [
          "roster"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rosters/{roster_ref}/discard": {
      "post": {
        "description": "Its sealed addresses are purged at once; the manifest (counts, codes,\nhash) stays. A committed roster cannot be discarded (revoke invitations\nwith POST /v1/invites/{ref}/revoke).",
        "operationId": "roster_discard_v1_rosters__roster_ref__discard_post",
        "parameters": [
          {
            "in": "path",
            "name": "roster_ref",
            "required": true,
            "schema": {
              "title": "Roster Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RosterOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.roster.write"
            ]
          }
        ],
        "summary": "Discard a staged roster",
        "tags": [
          "roster"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rosters/{roster_ref}/enrolment": {
      "get": {
        "description": "Counts per status overall and per cohort with small-cell suppression\n(AGG_MIN_CELL, primary + complementary; safe to share beyond your team),\nthen your own roster rows: external_id, status, member_ref once joined and\nwhile linked, joined_at. Audited as a disclosure.",
        "operationId": "roster_enrolment_v1_rosters__roster_ref__enrolment_get",
        "parameters": [
          {
            "in": "path",
            "name": "roster_ref",
            "required": true,
            "schema": {
              "title": "Roster Ref",
              "type": "string"
            }
          },
          {
            "description": "Filter the member list by status.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter the member list by status.",
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "cohort",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 64,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cohort"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrolmentReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.roster.read"
            ]
          }
        ],
        "summary": "The join report: who was invited, opened, joined, declined",
        "tags": [
          "roster"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rosters/{roster_ref}/join-links": {
      "get": {
        "description": "Norvya never texts someone without an account (no opt-in on record):\ndeliver each join_url, with its decline_url, through your own consented\nchannel. Each link is returned ONCE and then forgotten (only its hash\nremains); call again after a reminder for the new links.",
        "operationId": "roster_join_links_v1_rosters__roster_ref__join_links_get",
        "parameters": [
          {
            "in": "path",
            "name": "roster_ref",
            "required": true,
            "schema": {
              "title": "Roster Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JoinLinks"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.roster.write"
            ]
          }
        ],
        "summary": "Phone-only rows' join links (shown once)",
        "tags": [
          "roster"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rosters/{roster_ref}/remind": {
      "post": {
        "description": "At most once every PARTNER_ROSTER_REMIND_DAYS (default 7) per roster and\nPARTNER_ROSTER_MAX_REMINDERS (default 2) per person; never to someone who\njoined, declined or whose invitation you revoked. Each reminder is a new\ninvitation (the old code stops working) through the same queue and cap.\n409 roster_remind_too_soon / roster_not_committed.",
        "operationId": "roster_remind_v1_rosters__roster_ref__remind_post",
        "parameters": [
          {
            "in": "path",
            "name": "roster_ref",
            "required": true,
            "schema": {
              "title": "Roster Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemindOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.roster.write"
            ]
          }
        ],
        "summary": "Remind the people who have not joined yet",
        "tags": [
          "roster"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/rosters/{roster_ref}/simulate-joins": {
      "post": {
        "description": "Sandbox credentials only (403 sandbox_only otherwise): synthetic members\njoin through the roster's open invitations (member.joined fires), so the\nenrolment report shows data.",
        "operationId": "roster_simulate_joins_v1_rosters__roster_ref__simulate_joins_post",
        "parameters": [
          {
            "in": "path",
            "name": "roster_ref",
            "required": true,
            "schema": {
              "title": "Roster Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/SimulateJoinsIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulateJoinsOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "members.roster.write"
            ]
          }
        ],
        "summary": "Sandbox: a share of the roster's invitations join",
        "tags": [
          "roster"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/scheduling/settings": {
      "get": {
        "description": "The practice zone Norvya stores appointments on (from your practice's\nNorvya hours; UTC when none are set), its active clinicians and staff as\nstaff_ref values to map your own provider list to (names and roles only),\nand whether Norvya sends its own reminders for appointments your system\nsends (off by default: your system usually reminds).",
        "operationId": "scheduling_settings_v1_scheduling_settings_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulingSettings"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "scheduling.read"
            ]
          }
        ],
        "summary": "Your practice's zone, providers and reminder setting",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      },
      "put": {
        "description": "Set norvya_reminders_for_partner_appointments. While false, Norvya sends\nno appointment reminder (push, in-app or email) for an appointment your\nsystem sent, so a patient is not reminded twice. Appointments booked in\nNorvya itself are reminded either way. Audited as a settings change.",
        "operationId": "scheduling_settings_put_v1_scheduling_settings_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SchedulingSettingsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulingSettings"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "scheduling.write"
            ]
          }
        ],
        "summary": "Turn Norvya's reminders for your appointments on or off",
        "tags": [
          "billing"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/social-needs/reference": {
      "get": {
        "description": "The findings a screen can produce with the ICD-10-CM Z-codes and SNOMED\nCT concepts Norvya asserts (Z59.10 inadequate housing, not the retired\nZ59.1), the US Core `sdoh` category, the referral statuses and their FHIR\nTask.status. No patient data.",
        "operationId": "social_needs_reference_v1_social_needs_reference_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnReference"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "social_needs.read"
            ]
          }
        ],
        "summary": "Social needs vocabulary: screeners, findings and their codes, referral statuses",
        "tags": [
          "programs"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/social-needs/referrals": {
      "get": {
        "description": "Newest first, at most 500, for patients still linked and sharing their\nmedical history with you.",
        "operationId": "social_needs_referral_list_v1_social_needs_referrals_get",
        "parameters": [
          {
            "description": "One hrsn status (or alias).",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "One hrsn status (or alias).",
              "title": "Status"
            }
          },
          {
            "description": "Only referrals still open.",
            "in": "query",
            "name": "open",
            "required": false,
            "schema": {
              "default": false,
              "description": "Only referrals still open.",
              "title": "Open",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnReferralList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "social_needs.read"
            ]
          }
        ],
        "summary": "Your practice's closed-loop community referrals",
        "tags": [
          "programs"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/social-needs/referrals/{referral_ref}": {
      "get": {
        "operationId": "social_needs_referral_get_v1_social_needs_referrals__referral_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "referral_ref",
            "required": true,
            "schema": {
              "title": "Referral Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnReferral"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "social_needs.read"
            ]
          }
        ],
        "summary": "One closed-loop referral",
        "tags": [
          "programs"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/social-needs/referrals/{referral_ref}/status": {
      "post": {
        "description": "Any hrsn status (aliases service_delivered -> completed, declined ->\ndeclined_by_patient). A closed status stamps closed_at; reopening clears\nit. Other clients of your practice receive social_needs.referral_updated;\nyour own client does not.",
        "operationId": "social_needs_referral_status_v1_social_needs_referrals__referral_ref__status_post",
        "parameters": [
          {
            "in": "path",
            "name": "referral_ref",
            "required": true,
            "schema": {
              "title": "Referral Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SnStatusIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnReferral"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "social_needs.write"
            ]
          }
        ],
        "summary": "Move a referral along its loop (sent, accepted, completed, declined...)",
        "tags": [
          "programs"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/staff-wellbeing": {
      "get": {
        "description": "staff_wellbeing.clinic_aggregate (Copenhagen Burnout Inventory, work\nscale): eligible staff, how many answered, the band distribution and mean\n/ median, only once at least min_cell people answered in the 30-day window\n(below it even the response count is withheld). Never a name, a score or\nwho has not answered; a crisis answer never reaches the organisation.",
        "operationId": "staff_wellbeing_v1_staff_wellbeing_get",
        "parameters": [
          {
            "in": "query",
            "name": "periods",
            "required": false,
            "schema": {
              "default": 6,
              "maximum": 12,
              "minimum": 1,
              "title": "Periods",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "staff_wellbeing.read"
            ]
          }
        ],
        "summary": "Your staff's combined burnout check-in results",
        "tags": [
          "employer"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/transitions/adt": {
      "post": {
        "description": "A01 admit, A02 transfer, A03 discharge, A04 ED registration (patient\nclass E). Each message is matched only to YOUR organisation's actively\nlinked patients: a PID-3 identifier equal to the MRN Norvya holds for the\npatient AND the PID-7 birth date, or the full name AND birth date, on\nexactly one patient; anything else is held unmatched for your staff's\nreview in Norvya, never guessed. Idempotent on MSH-10. At a hospital, an\ninpatient A03 opens the patient's 30-day post-discharge episode, and a\nlater admission or ED visit inside the 30 days is recorded as a return.\nThe response is counts only: names, identifiers and dates are never\nechoed. Same rules as Norvya's own feed endpoint: a treating practice or\nhospital (409 not_a_medical_practice) with a BAA on file (409\ntransitions_baa_required); each patient's sharing choices decide what\nyour organisation then sees. 413 adt_batch_too_large over 5 MB (refused\nbefore the body is read whole); 415 unsupported_media_type.",
        "operationId": "transitions_adt_v1_transitions_adt_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "messages": {
                    "type": "string"
                  }
                },
                "required": [
                  "messages"
                ],
                "type": "object"
              }
            },
            "text/plain": {
              "example": "MSH|^~\\&|HIE|GH|NORVYA|HOSP|202610141500||ADT^A03|CTL-1001|P|2.5.1\rEVN|A03|202610141500\rPID|1||MRN-004211^^^GH^MR||Lopez^Maria||19500304|F\rPV1||I|^^^General Hospital",
              "schema": {
                "type": "string"
              }
            },
            "x-application/hl7-v2+er7": {
              "schema": {
                "type": "string"
              }
            }
          },
          "description": "One or more HL7 v2 ADT messages (MLLP framing or CR / LF segment ends), or JSON {\"messages\": \"<the same text>\"}. At most 5 MB.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdtIngestResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unsupported Media Type"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "transitions.adt.write"
            ]
          }
        ],
        "summary": "Send an HL7 v2 ADT batch from your feed",
        "tags": [
          "transitions"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/transitions/episodes": {
      "post": {
        "description": "Opens the patient's episode exactly as a navigator does in Norvya (same\nvalidation, same duplicate rule: one episode per patient per discharge\ndate, 409 episode_exists) and sends the patient Norvya's generic \"your\ncare team added a check-in\" notice. The patient must be actively linked\nto your hospital (404 member_not_found). Validation errors are machine\ncodes (422 discharge_date_required, discharge_date_too_old,\ndischarge_date_in_future, admit_after_discharge, condition_invalid,\ndisposition_invalid ...). Hospitals only (409 not_a_hospital) with a BAA\non file (409 transitions_baa_required).",
        "operationId": "transitions_enrol_v1_transitions_episodes_post",
        "parameters": [
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vendor"
            }
          },
          {
            "description": "IANA zone for 'today' and the due times (default UTC).",
            "in": "query",
            "name": "tz",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "IANA zone for 'today' and the due times (default UTC).",
              "title": "Tz"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrEnrolBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrEpisode"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unsupported Media Type"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "transitions.write"
            ]
          }
        ],
        "summary": "Enrol a discharged patient in 30-day post-discharge follow-up",
        "tags": [
          "transitions"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/transitions/episodes/{episode_id}": {
      "get": {
        "description": "The episode's state and record: calls made, the follow-up visit, every\ncheck-in with what the patient answered and each red flag as its\nsource's wording and citation (MedlinePlus / CDC), medicine\nreconciliation per medicine (staff-confirmed or not, the patient's\nanswer), open and resolved tasks, and the readmission-risk scores when\nrecorded. 404 episode_not_found for an id that is not an episode of your\nhospital or whose patient's link is no longer live (one answer for\nboth).",
        "operationId": "transitions_episode_v1_transitions_episodes__episode_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "episode_id",
            "required": true,
            "schema": {
              "title": "Episode Id",
              "type": "string"
            }
          },
          {
            "description": "IANA zone (default UTC).",
            "in": "query",
            "name": "tz",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "IANA zone (default UTC).",
              "title": "Tz"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrEpisode"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unsupported Media Type"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "transitions.read"
            ]
          }
        ],
        "summary": "One post-discharge episode: contacts, follow-up, check-ins, medicines, tasks",
        "tags": [
          "transitions"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/transitions/episodes/{episode_id}/close": {
      "post": {
        "description": "completed, readmitted (needs readmitted_on inside the 30 days) or\nwithdrawn (needs a reason). 409 episode_closed when it already is.",
        "operationId": "transitions_close_v1_transitions_episodes__episode_id__close_post",
        "parameters": [
          {
            "in": "path",
            "name": "episode_id",
            "required": true,
            "schema": {
              "title": "Episode Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tz",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tz"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrCloseBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrEpisode"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unsupported Media Type"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "transitions.write"
            ]
          }
        ],
        "summary": "Close the episode",
        "tags": [
          "transitions"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/transitions/episodes/{episode_id}/contacts": {
      "post": {
        "description": "A call attempt from your care-management system: outcome (reached\nstops the 48-72 hour clock), optional note, optional time WITH an offset\n(422 contact_at_needs_offset, contact_in_future). Returns the episode.",
        "operationId": "transitions_contact_v1_transitions_episodes__episode_id__contacts_post",
        "parameters": [
          {
            "in": "path",
            "name": "episode_id",
            "required": true,
            "schema": {
              "title": "Episode Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tz",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tz"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrContactBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrEpisode"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unsupported Media Type"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "transitions.write"
            ]
          }
        ],
        "summary": "Record a call to the patient",
        "tags": [
          "transitions"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/transitions/episodes/{episode_id}/followup": {
      "post": {
        "description": "The visit date and who it is with (422 followup_date_required,\nfollowup_before_discharge, followup_with_required); resolves an open\n\"no follow-up\" task. Within 7 days of discharge counts toward the\nfollow-up measure.",
        "operationId": "transitions_followup_v1_transitions_episodes__episode_id__followup_post",
        "parameters": [
          {
            "in": "path",
            "name": "episode_id",
            "required": true,
            "schema": {
              "title": "Episode Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tz",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tz"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrFollowupBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrEpisode"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unsupported Media Type"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "transitions.write"
            ]
          }
        ],
        "summary": "Record the booked follow-up visit",
        "tags": [
          "transitions"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/transitions/episodes/{episode_id}/returns": {
      "post": {
        "description": "A readmission (closes an active episode as readmitted) or an ED\nreturn, dated after discharge and within the 30 days (422\nreturn_outside_window). Recorded with source staff, the same as a\nnavigator's entry, and as a care event days-at-home reads.",
        "operationId": "transitions_return_v1_transitions_episodes__episode_id__returns_post",
        "parameters": [
          {
            "in": "path",
            "name": "episode_id",
            "required": true,
            "schema": {
              "title": "Episode Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tz",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tz"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrReturnBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrEpisode"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unsupported Media Type"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "transitions.write"
            ]
          }
        ],
        "summary": "Record a readmission or ED return",
        "tags": [
          "transitions"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/transitions/outcomes": {
      "get": {
        "description": "Counts for episodes discharged in the range: by condition, 30-day\nreadmissions and ED returns known to Norvya (from your ADT feed or\nrecorded by staff: no record does not mean no return), follow-up booked\nwithin 7 days, reached within 72 hours, check-in engagement, and days at\nhome ONLY for episodes whose full 30 days fall inside an ascertainment\nperiod (no ascertainment, no number). Operational counts for your team,\nNOT risk-adjusted HRRP measures and not comparable to CMS's published\nrates. Small cells are withheld, with complementary suppression (the\n`suppression` field says how). Counts only, no ids.",
        "operationId": "transitions_outcomes_v1_transitions_outcomes_get",
        "parameters": [
          {
            "description": "YYYY-MM-DD discharge dates from (default: 89 days before end).",
            "in": "query",
            "name": "start",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD discharge dates from (default: 89 days before end).",
              "title": "Start"
            }
          },
          {
            "description": "YYYY-MM-DD (default today); at most 366 days after start.",
            "in": "query",
            "name": "end",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "YYYY-MM-DD (default today); at most 366 days after start.",
              "title": "End"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrOutcomes"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unsupported Media Type"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "transitions.read"
            ]
          }
        ],
        "summary": "Operational post-discharge outcomes, small cells suppressed (not HRRP measures)",
        "tags": [
          "transitions"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/transitions/worklist": {
      "get": {
        "description": "One row per episode, in the transitions team's order (an open red flag\nfirst, then an overdue call, then readmission-risk band, then a due\ncall): day N of 30, what is due (the 48-72 hour call, the 7-day\nfollow-up visit, medicine reconciliation, red-flag review) with due\ntimes, the open issues, and the LACE / HOSPITAL scores with citation\nONLY when every input was recorded by staff (never imputed). Only\npatients whose link with your hospital is live. Hospitals only.",
        "operationId": "transitions_worklist_v1_transitions_worklist_get",
        "parameters": [
          {
            "description": "all | today | overdue",
            "in": "query",
            "name": "due",
            "required": false,
            "schema": {
              "default": "all",
              "description": "all | today | overdue",
              "title": "Due",
              "type": "string"
            }
          },
          {
            "description": "heart_failure | copd | ami | pneumonia | hip_knee_replacement | sepsis | other",
            "in": "query",
            "name": "condition",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "heart_failure | copd | ami | pneumonia | hip_knee_replacement | sepsis | other",
              "title": "Condition"
            }
          },
          {
            "description": "active | completed | readmitted | withdrawn | all",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "active",
              "description": "active | completed | readmitted | withdrawn | all",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "description": "IANA zone (default UTC).",
            "in": "query",
            "name": "tz",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "IANA zone (default UTC).",
              "title": "Tz"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrWorklist"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unsupported Media Type"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "transitions.read"
            ]
          }
        ],
        "summary": "Your post-discharge worklist: who to call, what is due, who is at risk",
        "tags": [
          "transitions"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/facilities": {
      "get": {
        "operationId": "travel_facilities_v1_travel_facilities_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 100,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Q"
            }
          },
          {
            "in": "query",
            "name": "country",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Country"
            }
          },
          {
            "in": "query",
            "name": "specialty",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Specialty"
            }
          },
          {
            "in": "query",
            "name": "agreement_status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Agreement Status"
            }
          },
          {
            "in": "query",
            "name": "facility_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Facility Type"
            }
          },
          {
            "in": "query",
            "name": "include_inactive",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Inactive",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TravelList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.read"
            ]
          }
        ],
        "summary": "Your partner-hospital directory (accreditations as recorded; Norvya verifies none)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "operationId": "travel_facility_create_v1_travel_facilities_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FacilityIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.write"
            ]
          }
        ],
        "summary": "Add a partner hospital to your directory",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/facilities/{facility_ref}": {
      "get": {
        "operationId": "travel_facility_v1_travel_facilities__facility_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "facility_ref",
            "required": true,
            "schema": {
              "title": "Facility Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.read"
            ]
          }
        ],
        "summary": "One partner hospital",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      },
      "patch": {
        "operationId": "travel_facility_update_v1_travel_facilities__facility_ref__patch",
        "parameters": [
          {
            "in": "path",
            "name": "facility_ref",
            "required": true,
            "schema": {
              "title": "Facility Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FacilityIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.write"
            ]
          }
        ],
        "summary": "Update a partner hospital (any subset)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/inquiries": {
      "get": {
        "description": "travel_coordination.list_inquiries (the desk screen's list), at most 500;\n`counts` by status across the desk.",
        "operationId": "travel_inquiries_v1_travel_inquiries_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "external_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 64,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "External Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.inquiries.read"
            ]
          }
        ],
        "summary": "Your desk's travel inquiries (open emergencies first, then newest)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "travel_coordination.create_inquiry: status `new`, attributed to your\nsystem (never a person). A member_ref links a patient on your roster.",
        "operationId": "travel_inquiry_create_v1_travel_inquiries_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InquiryIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.inquiries.write"
            ]
          }
        ],
        "summary": "Create an inquiry from your CRM (by your own id)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/inquiries/{inquiry_ref}": {
      "get": {
        "operationId": "travel_inquiry_v1_travel_inquiries__inquiry_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "inquiry_ref",
            "required": true,
            "schema": {
              "title": "Inquiry Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.inquiries.read"
            ]
          }
        ],
        "summary": "One inquiry with its status history and quote versions",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      },
      "patch": {
        "description": "travel_coordination.update_inquiry + link_patient (409 inquiry_closed\nonce declined or converted).",
        "operationId": "travel_inquiry_update_v1_travel_inquiries__inquiry_ref__patch",
        "parameters": [
          {
            "in": "path",
            "name": "inquiry_ref",
            "required": true,
            "schema": {
              "title": "Inquiry Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InquiryPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.inquiries.write"
            ]
          }
        ],
        "summary": "Edit an open inquiry, or link / unlink the patient",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/inquiries/{inquiry_ref}/convert": {
      "post": {
        "description": "travel_coordination.convert_inquiry — the function the desk's Convert\nbutton calls: 409 inquiry_not_accepted / inquiry_patient_not_linked; the\njourney is coordinator-opened, so the patient is asked in the app (generic\npush) and every journey write answers 409 care_journey_consent_pending\nuntil they accept. Needs travel.journeys.write as well.",
        "operationId": "travel_inquiry_convert_v1_travel_inquiries__inquiry_ref__convert_post",
        "parameters": [
          {
            "in": "path",
            "name": "inquiry_ref",
            "required": true,
            "schema": {
              "title": "Inquiry Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConvertIn",
                "default": {
                  "destination_country": "US"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.inquiries.write"
            ]
          }
        ],
        "summary": "Convert an accepted inquiry to a care journey (waits for the patient's acceptance)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/inquiries/{inquiry_ref}/quote": {
      "post": {
        "description": "travel_coordination.issue_quote -> good_faith_estimate.issue: hashed,\nkept six years; a revision supersedes, never overwrites. In the app when\nthe inquiry was linked to a patient before the first quote, otherwise\nrecorded as e-mail delivery (your desk sends it; Norvya does not). Norvya\nnever chooses a code or a price and takes no payment.",
        "operationId": "travel_inquiry_quote_v1_travel_inquiries__inquiry_ref__quote_post",
        "parameters": [
          {
            "in": "path",
            "name": "inquiry_ref",
            "required": true,
            "schema": {
              "title": "Inquiry Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.inquiries.write"
            ]
          }
        ],
        "summary": "Issue the first quote or a revision (an immutable Good Faith Estimate version)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/inquiries/{inquiry_ref}/status": {
      "post": {
        "description": "travel_coordination.move: only the moves the desk's screen allows from\nthe current status (409 inquiry_move_not_allowed).",
        "operationId": "travel_inquiry_status_v1_travel_inquiries__inquiry_ref__status_post",
        "parameters": [
          {
            "in": "path",
            "name": "inquiry_ref",
            "required": true,
            "schema": {
              "title": "Inquiry Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InquiryStatusIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.inquiries.write"
            ]
          }
        ],
        "summary": "Move an inquiry (the desk's own moves: reviewing, accepted, declined)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/invoices": {
      "get": {
        "description": "One invoice per PRN per calendar month, built from approved timesheets\nagainst the LOG (nursing_reports). Newest first, at most 500. Norvya does\nnot send or collect them.",
        "operationId": "travel_invoices_v1_travel_invoices_get",
        "parameters": [
          {
            "description": "draft | issued | void",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "draft | issued | void",
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TravelList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.billing.read"
            ]
          }
        ],
        "summary": "Your desk's monthly home-nursing invoices across cases",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys": {
      "get": {
        "description": "Patients actively on your roster only (a sandbox: synthetic members).\nNewest first, at most 500.",
        "operationId": "travel_journeys_v1_travel_journeys_get",
        "parameters": [
          {
            "description": "Part of a PRN.",
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 64,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Part of a PRN.",
              "title": "Q"
            }
          },
          {
            "in": "query",
            "name": "phase",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Phase"
            }
          },
          {
            "in": "query",
            "name": "include_closed",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Closed",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TravelList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.read"
            ]
          }
        ],
        "summary": "Your desk's care journeys (open by default), with continuity and nursing flags",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "travel_coordination.create_for_patient: the patient receives Norvya's\ngeneric \"request to review\" push and the journey stays consent_status\n`pending` until they accept in the app; until then every write answers\n409 care_journey_consent_pending. One open journey per patient per desk\n(409 care_journey_already_open).",
        "operationId": "travel_journey_create_v1_travel_journeys_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JourneyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.write"
            ]
          }
        ],
        "summary": "Open a care journey for a patient on your roster (waits for the patient's acceptance)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}": {
      "get": {
        "operationId": "travel_journey_v1_travel_journeys__journey_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.read"
            ]
          }
        ],
        "summary": "One care journey: phase, dates, timeline, continuity after repatriation",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/approvals": {
      "get": {
        "description": "Each run of the desk's approval template: steps, the current step and\nthe decisions with who decided in what role. A step is decided in Norvya\nby a staff member whose role the step requires.",
        "operationId": "travel_approvals_v1_travel_journeys__journey_ref__approvals_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.read"
            ]
          }
        ],
        "summary": "Approval progress on the journey (read only)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/facility": {
      "put": {
        "operationId": "travel_journey_facility_v1_travel_journeys__journey_ref__facility_put",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FacilityLinkIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.write"
            ]
          }
        ],
        "summary": "Link (or unlink) the journey's partner hospital",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/ips": {
      "get": {
        "description": "care_journey.ips_from_packet over the coordinator's consent-scoped\npacket (fhir_export.patient_bundle -> fhir_export.ips_document; never a\nsecond builder). Withheld sections are marked, not empty. 403\ncare_journey_handoff_not_shared; 503 care_journey_bundle_unavailable.",
        "operationId": "travel_ips_v1_travel_journeys__journey_ref__ips_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.documents.read"
            ]
          }
        ],
        "summary": "The journey's HL7 International Patient Summary (FHIR document Bundle)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/legs": {
      "get": {
        "description": "`live` is null until the leg is checked (a flight-data provider must be\nconfigured; GET /v1/travel/reference). Marking an outbound leg flown never\nmoves the journey's phase.",
        "operationId": "travel_legs_v1_travel_journeys__journey_ref__legs_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TravelList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.read"
            ]
          }
        ],
        "summary": "Flights and transfers, each end in its own time zone, with live flight status",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "journey_ops.create_leg (direction, mode and both places required; local\ntimes with each end's IANA zone; oxygen 0.5-15 L/min; an escort must be\non the care team on the day of departure).",
        "operationId": "travel_leg_create_v1_travel_journeys__journey_ref__legs_post",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LegIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.write"
            ]
          }
        ],
        "summary": "Add a flight or transfer leg",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/legs/{leg_ref}": {
      "patch": {
        "operationId": "travel_leg_update_v1_travel_journeys__journey_ref__legs__leg_ref__patch",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "leg_ref",
            "required": true,
            "schema": {
              "title": "Leg Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LegIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.write"
            ]
          }
        ],
        "summary": "Edit a leg (any subset; \"\" clears a text field)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/legs/{leg_ref}/cancel": {
      "post": {
        "operationId": "travel_leg_cancel_v1_travel_journeys__journey_ref__legs__leg_ref__cancel_post",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "leg_ref",
            "required": true,
            "schema": {
              "title": "Leg Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelIn",
                "default": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.write"
            ]
          }
        ],
        "summary": "Cancel a leg (kept, never deleted)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/legs/{leg_ref}/refresh-status": {
      "post": {
        "description": "flight_status.refresh_leg (cached a few minutes per flight and day).\nOnly the live fields change; the leg status and the phase stay manual.\n503 flight_status_not_configured; 409 flight_status_leg_not_active; 422\nflight_status_needs_flight_number / flight_status_needs_departure.",
        "operationId": "travel_leg_refresh_v1_travel_journeys__journey_ref__legs__leg_ref__refresh_status_post",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "leg_ref",
            "required": true,
            "schema": {
              "title": "Leg Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.write"
            ]
          }
        ],
        "summary": "Check the leg's live flight status now",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/messages": {
      "get": {
        "description": "The thread the desk's staff read in Norvya (travel_coordination.thread_rows),\noldest first, the last 200. The patient and caregiver are sender_role only,\nnever named; `mine` marks your own client's messages. A message sent with\n\"write in mine, send in theirs\" carries the translation the sender previewed.",
        "operationId": "travel_messages_v1_travel_journeys__journey_ref__messages_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.messages.read"
            ]
          }
        ],
        "summary": "The journey's in-app thread (desk, patient, approved caregiver)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "travel_coordination.post: shown in Norvya as \"Partner system: <your\nclient's label>\", never as a person. The patient, the linked caregiver and\ndesk staff who wrote on the thread get Norvya's generic \"new message\" push\n(no content on the lock screen). 409 care_journey_consent_pending until\nthe patient accepts; 409 journey_closed once closed.",
        "operationId": "travel_message_post_v1_travel_journeys__journey_ref__messages_post",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreadMessageIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.messages.write"
            ]
          }
        ],
        "summary": "Post in the journey's thread as your desk's system",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing": {
      "get": {
        "description": "nursing_authorization.case_dict. Flags: extension_required,\nlog_expired, lomn_pending, paused, no_log. Documents are described (name,\ntype, size, SHA-256), never returned.",
        "operationId": "travel_nursing_v1_travel_journeys__journey_ref__nursing_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.nursing.read"
            ]
          }
        ],
        "summary": "A home-nursing case: PRN, LOMN, LOG versions, exception starts, pauses, flags, hours check",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/hours-check": {
      "get": {
        "operationId": "travel_hours_check_v1_travel_journeys__journey_ref__nursing_hours_check_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Start"
            }
          },
          {
            "in": "query",
            "name": "end",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "End"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.nursing.read"
            ]
          }
        ],
        "summary": "Scheduled and delivered minutes against the LOMN and the LOG, by day, week and span",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/invoices": {
      "get": {
        "operationId": "travel_journey_invoices_v1_travel_journeys__journey_ref__nursing_invoices_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TravelList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.billing.read"
            ]
          }
        ],
        "summary": "The case's monthly invoices",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/invoices/{invoice_ref}": {
      "get": {
        "description": "Money is integer minor units with an ISO 4217 code (exponent given);\nhours are minutes. Hours over the LOG are their own held `overage` line.",
        "operationId": "travel_invoice_v1_travel_journeys__journey_ref__nursing_invoices__invoice_ref__get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "invoice_ref",
            "required": true,
            "schema": {
              "title": "Invoice Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.billing.read"
            ]
          }
        ],
        "summary": "One invoice with its lines (care, overage, exception, outside, pause) and hold flags",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/invoices/{invoice_ref}/{fmt}": {
      "get": {
        "operationId": "travel_invoice_file_v1_travel_journeys__journey_ref__nursing_invoices__invoice_ref___fmt__get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "invoice_ref",
            "required": true,
            "schema": {
              "title": "Invoice Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fmt",
            "required": true,
            "schema": {
              "title": "Fmt",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Lang"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.billing.read"
            ]
          }
        ],
        "summary": "Download an invoice (pdf or accessible html, in a chosen language)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/logs": {
      "post": {
        "description": "nursing_authorization.record_log: a NEW version (never edited); the\nnewest version gates scheduling. 409 log_prn_mismatch when the PRN is not\nthe case's; 413 nursing_document_too_large; 422 nursing_document_type.",
        "operationId": "travel_nursing_log_v1_travel_journeys__journey_ref__nursing_logs_post",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_travel_nursing_log_v1_travel_journeys__journey_ref__nursing_logs_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.nursing.write"
            ]
          }
        ],
        "summary": "Record a new version of the sponsor's Letter of Guarantee (multipart, with the letter)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/reports": {
      "get": {
        "operationId": "travel_reports_v1_travel_journeys__journey_ref__nursing_reports_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TravelList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.documents.read"
            ]
          }
        ],
        "summary": "The weekly nursing reports for the case (drafts, sent, every version)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/reports/{report_ref}/{fmt}": {
      "get": {
        "operationId": "travel_report_file_v1_travel_journeys__journey_ref__nursing_reports__report_ref___fmt__get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "report_ref",
            "required": true,
            "schema": {
              "title": "Report Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fmt",
            "required": true,
            "schema": {
              "title": "Fmt",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Lang"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.documents.read"
            ]
          }
        ],
        "summary": "Download a weekly nursing report (pdf or accessible html, in a chosen language)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/shifts": {
      "get": {
        "operationId": "travel_shifts_v1_travel_journeys__journey_ref__nursing_shifts_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Start"
            }
          },
          {
            "in": "query",
            "name": "end",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "End"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.nursing.read"
            ]
          }
        ],
        "summary": "Planned nursing shifts and the dates the paperwork allows",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "nursing_authorization.create_shift. The server's gate: 409\nnursing_no_log (no LOG at all), 409 shift_outside_log (outside the newest\nLOG's dates and any exception start; a lapsed LOG escalates to the desk at\nonce), 409 nursing_paused, 409 shift_overlap (the same nurse elsewhere),\n422 shift_nurse_not_on_team.",
        "operationId": "travel_shift_create_v1_travel_journeys__journey_ref__nursing_shifts_post",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShiftIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.nursing.write"
            ]
          }
        ],
        "summary": "Plan a nursing shift (refused outside the newest LOG's dates or in a pause)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/shifts/{shift_ref}/status": {
      "post": {
        "operationId": "travel_shift_status_v1_travel_journeys__journey_ref__nursing_shifts__shift_ref__status_post",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "shift_ref",
            "required": true,
            "schema": {
              "title": "Shift Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShiftStatusIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.nursing.write"
            ]
          }
        ],
        "summary": "Confirm or cancel a shift (cancel needs a reason)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/status": {
      "post": {
        "description": "nursing_authorization.set_status: forward only (409\nnursing_status_not_forward); paused and resume stay in Norvya (409\nnursing_status_use_pause); nursing_active needs a LOG or exception start\ncovering today (409 nursing_log_not_in_force).",
        "operationId": "travel_nursing_status_v1_travel_journeys__journey_ref__nursing_status_post",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NursingStatusIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.nursing.write"
            ]
          }
        ],
        "summary": "Move a nursing case forward (the LOG gates nursing_active)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/surveys": {
      "get": {
        "description": "Every response with plain averages (the desk's own quality questions,\nnot a validated instrument). A comment the crisis path flagged is withheld\n(comment_withheld: crisis_path).",
        "operationId": "travel_surveys_v1_travel_journeys__journey_ref__nursing_surveys_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.nursing.read"
            ]
          }
        ],
        "summary": "Patient and family satisfaction survey results for the case",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/nursing/visits": {
      "get": {
        "description": "home_nursing_records.care_record_summary over case-local days (default\nthe last 14). A scheduled dose with nothing recorded is `not_recorded`,\nnever \"missed\". Written in Norvya by the nurse on the care team; a partner\nsystem does not write them. Items carry an item_ref for translation.",
        "operationId": "travel_visits_v1_travel_journeys__journey_ref__nursing_visits_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Start"
            }
          },
          {
            "in": "query",
            "name": "end",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "End"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.nursing.read"
            ]
          }
        ],
        "summary": "Visit records: nurses' notes with vitals, medication administration, incidents (read only)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/phase": {
      "post": {
        "description": "care_journey.advance: forward only (409 phase_not_forward), the dates\nset by the move (arrival, discharge, departure), a timeline line and a\nchained audit row. 409 care_journey_consent_pending until the patient\naccepted; 409 approvals_required when your desk requires approvals before\ntravel.",
        "operationId": "travel_journey_phase_v1_travel_journeys__journey_ref__phase_post",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PhaseIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.write"
            ]
          }
        ],
        "summary": "Move a journey forward a phase",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/referral": {
      "get": {
        "operationId": "travel_referral_v1_travel_journeys__journey_ref__referral_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.nursing.read"
            ]
          }
        ],
        "summary": "A sponsor referral's status: consent basis, documented consent, claim of the account",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/repatriation-packet": {
      "get": {
        "description": "What the patient carries home, as the desk may see it: consent-scoped\nper resource type (medications need share_medications, labs share_labs,\nvitals share_biometrics...); what was withheld is named in\nconsent_excluded.",
        "operationId": "travel_packet_v1_travel_journeys__journey_ref__repatriation_packet_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.documents.read"
            ]
          }
        ],
        "summary": "The repatriation packet: the FHIR collection bundle plus the travel context",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/summary/{fmt}": {
      "get": {
        "operationId": "travel_summary_v1_travel_journeys__journey_ref__summary__fmt__get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fmt",
            "required": true,
            "schema": {
              "title": "Fmt",
              "type": "string"
            }
          },
          {
            "description": "The second language (default: the journey's primary language; en = English only).",
            "in": "query",
            "name": "lang",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The second language (default: the journey's primary language; en = English only).",
              "title": "Lang"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.documents.read"
            ]
          }
        ],
        "summary": "The bilingual readable summary for the clinician at home (pdf or accessible html)",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/team": {
      "get": {
        "description": "Time tracking, not payroll (journey_ops): minutes by staff member,\nactivity and day; superseded, voided and open entries are not counted.\nAdding members and clocking time stay in Norvya (a named staff member).",
        "operationId": "travel_team_v1_travel_journeys__journey_ref__team_get",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          },
          {
            "description": "IANA zone for the per-day totals (default UTC).",
            "in": "query",
            "name": "tz",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "IANA zone for the per-day totals (default UTC).",
              "title": "Tz"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.read"
            ]
          }
        ],
        "summary": "The journey's care team and the staff hours logged on it",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/journeys/{journey_ref}/translations": {
      "post": {
        "description": "translation_items: the saved translation is served again for the same\nsource text (free, identical); a new one writes a chained AI_INFERENCE\naudit row. Needs the scope that reads the item as well (travel.nursing.read\nfor nursing items, travel.billing.read for an invoice's reasons). A\ntranslation that could not be validated is status `failed` with a reason,\nnot an error; legal_reference_only items (a LOMN) are a reading aid, never\nthe document. 503 translation_disabled.",
        "operationId": "travel_translate_v1_travel_journeys__journey_ref__translations_post",
        "parameters": [
          {
            "in": "path",
            "name": "journey_ref",
            "required": true,
            "schema": {
              "title": "Journey Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslationIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.translations.write"
            ]
          }
        ],
        "summary": "Machine-translate one free-text item on the journey",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/reference": {
      "get": {
        "description": "No patient data. `not_exposed` names what stays in Norvya because a\nperson attests to it (a nurse's visit record, an approval decision, an\ninvoice issue).",
        "operationId": "travel_reference_v1_travel_reference_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.journeys.read"
            ]
          }
        ],
        "summary": "Medical travel vocabularies: phases, leg modes, nursing statuses, invoice flags, languages",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/travel/referrals": {
      "post": {
        "description": "nursing_referral.create_ipc_referral: a MANAGED patient account (nobody\ncan sign in; nothing is sent to it), linked to your desk, and a nursing\ncase keyed to the PRN, status referral_received. The case is consent\n`pending` on the documented basis: NOTHING moves on it until desk staff\nrecord the patient's signed consent form in Norvya (or the patient claims\nthe account and accepts in the app). 409 prn_taken. In a sandbox the\naccount is labelled synthetic and no contact is stored.",
        "operationId": "travel_referral_create_v1_travel_referrals_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReferralIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "travel.nursing.write"
            ]
          }
        ],
        "summary": "Send a sponsor's home-nursing referral for a patient without the app",
        "tags": [
          "travel"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/usage": {
      "get": {
        "description": "Calls and errors per endpoint per UTC day for the calling client, for\nusage-based pricing. Counts every authenticated call, including refusals\n(counted in errors).",
        "operationId": "usage_v1_usage_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": []
          }
        ],
        "summary": "Your client's call counts, last 30 days",
        "tags": [
          "platform"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/webhooks": {
      "get": {
        "operationId": "webhook_list_v1_webhooks_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookList"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "webhooks.manage"
            ]
          }
        ],
        "summary": "Your webhook endpoints",
        "tags": [
          "events"
        ],
        "x-norvya-status": "built_gated"
      },
      "post": {
        "description": "HTTPS only; the host must resolve to public addresses only (loopback,\nprivate, link-local / metadata, CGNAT and ULA ranges are refused, at\nregistration and again at every send; redirects are never followed).\nYour client must also hold the scope behind each event\n(worklist.* / patient.attention_needed: clinical.panel.read; import.*:\npanel.import.write; population.export_completed: population.export —\nthese are practice events, for medical practices only; patient.admitted /\npatient.discharged / patient.ed_visit: transitions.notices.read, treating\npractices and hospitals; transition.episode_enrolled / transition.red_flag:\ntransitions.read, hospitals only; member.at_risk: fitness.roster.read, any\norganisation, so a gym can subscribe to it) — 422 webhook_event_not_allowed\notherwise.\n\npatient.admitted / .discharged / .ed_visit fire when an ADT notice is\nmatched to one of your patients and visible to you (after a discharge, TCM\nasks for contact within 2 business days: GET the resource_url for the\nclock). transition.episode_enrolled fires when a post-discharge episode\nopens at your hospital; transition.red_flag when a patient's check-in trips\na new red flag. All five carry member_ref.\n\npopulation.export_completed fires when an export YOUR client started\nfinishes; it is sent to your client's endpoints only.\n\nmember.at_risk fires once when a member newly enters churn level \"high\"\n(daily scan); not again until the member leaves \"high\" and re-enters.\n\nPayloads carry no PHI: {event, id, created_at, resource_url, member_ref\n(attention, member.at_risk, patient.* and transition.* only)} — GET the resource_url with your token. Verify every\ndelivery: `Norvya-Signature: t=<unix>, v1=<hex>` where v1 = HMAC-SHA256(secret,\n\"<t>.\" + raw body); compare in constant time, reject a t more than 300 s\nfrom your clock (replay window) and de-duplicate on the Norvya-Delivery\nheader (delivery is at-least-once). Failed deliveries retry with\nexponential backoff (1, 2, 4 ... min; 8 attempts); 20 consecutive failures\ndisable the endpoint (POST /v1/webhooks/{id}/enable).",
        "operationId": "webhook_create_v1_webhooks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookCreated"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "webhooks.manage"
            ]
          }
        ],
        "summary": "Register a webhook endpoint (secret shown once)",
        "tags": [
          "events"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/webhooks/{webhook_id}": {
      "delete": {
        "description": "Pending deliveries are cancelled.",
        "operationId": "webhook_delete_v1_webhooks__webhook_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "title": "Webhook Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "webhooks.manage"
            ]
          }
        ],
        "summary": "Delete a webhook endpoint",
        "tags": [
          "events"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/webhooks/{webhook_id}/deliveries": {
      "get": {
        "description": "Newest first: status, attempts, next retry, last HTTP status / error\nclass, and the (PHI-free) payload. Response bodies are never stored.",
        "operationId": "webhook_deliveries_v1_webhooks__webhook_id__deliveries_get",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "title": "Webhook Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "description": "pending | delivered | failed | cancelled",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "pending | delivered | failed | cancelled",
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDeliveries"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "webhooks.manage"
            ]
          }
        ],
        "summary": "Recent deliveries of one webhook endpoint",
        "tags": [
          "events"
        ],
        "x-norvya-status": "built_gated"
      }
    },
    "/v1/webhooks/{webhook_id}/enable": {
      "post": {
        "description": "The URL is re-checked; the failure count resets. Deliveries cancelled\nwhile it was disabled are not re-sent.",
        "operationId": "webhook_enable_v1_webhooks__webhook_id__enable_post",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "title": "Webhook Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "PartnerOAuth2": [
              "webhooks.manage"
            ]
          }
        ],
        "summary": "Re-enable a disabled webhook endpoint",
        "tags": [
          "events"
        ],
        "x-norvya-status": "built_gated"
      }
    }
  },
  "servers": [
    {
      "description": "Production",
      "url": "https://norvya.fly.dev"
    }
  ],
  "tags": [
    {
      "description": "Tokens, your member list, and your own usage. Every integration starts here. EMR vendors use one credential for every practice that approves them in Norvya: GET /v1/practices lists those practices, and a token is requested per practice.",
      "name": "platform",
      "x-displayName": "Platform",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Reach the people you already know but who have not joined yet, then talk to them. Invitations go out by email in the invitee's language with your branding and a one-time code; a phone-only invitation returns its join link once for you to deliver through your own consented channel (Norvya texts no one who has not opted in). Reusable join codes for a front desk or a class. Joining is always the person's own choice on the app's normal consent screen: an invitation never creates a link or sets a sharing switch, and the answer never reveals whether an address belongs to a Norvya account. Messages to a member land in their in-app inbox; the notification is generic and the text never reaches a lock screen. Refused when the member turned messages off for you; daily caps per member and per organisation. Bulk enrolment from a roster is the Enrolment roster family below. Webhooks: member.joined, message.received.",
      "name": "engagement",
      "x-displayName": "Enrolment & messaging",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For plans, state programmes and practices that hold covered lives: upload a roster (CSV / NDJSON, or a CMS eligibility / attribution file), review its dry run, and have Norvya invite everyone on it in bulk through the same invitation and in-app consent screen, under a daily cap (queued, not dropped), with reminders and phone-only join links. The enrolment report is small-cell-suppressed counts by cohort; MBIs are never stored raw, addresses are held sealed only until delivered, and a person who declines is never invited by that organisation again. Webhook: roster.enrolment_summary.",
      "name": "roster",
      "x-displayName": "Enrolment roster",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Signed notifications: a member newly at high risk of leaving (gyms), a worklist run finishing, a patient newly needing attention, an import completing, a population export ready, a registry acknowledgement or a Reportability Response arriving, a patient's care-management time reaching a program's first published mark, an appointment booked or cancelled in Norvya (practices), a member joining, a member's message, a questionnaire completed, a worklist item triaged, a claims import completed, a social-needs screen completed or a community referral updated, an imported patient claiming their account, a caseload questionnaire batch dispatched, a hospital-at-home escalation, a pharmacy refill due or discharge follow-up opened, a care-site change of condition, medication incident or MAR exception, and a medical-travel inquiry, journey, journey message, flight leg, nursing visit or invoice update; and, from the specialty and programme families, a roster's enrolment numbers changing, a raised falls tier, a challenge ending, an occupational exam coming due, a med-spa adverse event, a rehab goal met, a dietitian caseload flag, a Collaborative Care review due, a lesion recheck due, a patch-test read and a hospice IDG review due. Payloads carry no health data, only a reference to fetch with your token.",
      "name": "events",
      "x-displayName": "Events (webhooks)",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "One patient's record as a FHIR R4 Bundle, built by the same builders and under the same consent scope as the population export (the patient's sharing choices, your own records, 42 CFR Part 2 records only under a covering consent), size-capped with the bulk export for large records. The documents Norvya already produces about a patient, listed and downloaded as PDF (or HTML where that is the only form) in the patient's language where the document supports it: survivorship care plans, Good Faith Estimates, post-discharge summaries, the wellness visit's written prevention plan, the medical-travel repatriation summary, weekly nursing reports and nursing invoices, and the pharmacist's completed medication review. Each kind keeps its own gate and scope; kinds a patient's sharing withholds are named, and kinds Norvya does not serve are listed with the reason. Every download is audited as a disclosure before it is returned.",
      "name": "records",
      "x-displayName": "Records & documents",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Ranked, gym-safe actions for a trainer (what to program, how hard to push, which movements to avoid), an at-risk roster across your members, and a way to ask Norvya to send a member its standard re-engagement nudge. A member's training (workouts, estimated one-rep max per lift, weekly hard sets against volume landmarks, the load ratio, and a readiness band only while wearables are shared), your trainers' notes both ways (attributed to your system, never to a person), and your gym's retention and engagement-versus-results as counts with small cells withheld. Never names a diagnosis, medicine or reading.",
      "name": "fitness",
      "x-displayName": "Fitness intelligence",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For treating practices: the pre-visit brief, the ranked panel worklist with the evidence and guideline behind each item, care gaps, and between-visit signals the patient chose to share. Write-back: triage a worklist item (assign it to a clinician from GET /v1/panel/clinicians, snooze, dismiss or mark done) and close the loop on results and referrals (acknowledge, act, tell the patient, close). Validated questionnaires (PHQ-9, GAD-7 and the rest of Norvya's instrument registry, English items unless an official translation exists) requested from your system and scored server-side; a response that trips a crisis item shows the member crisis resources first and alerts staff, and is never routed to coaching or an AI path. Caseload questionnaire batches (one instrument to a member list or a cohort filter, asynchronous, with a suppressed aggregate) and clinician-rated measures a named clinician assigned. Specialty hub results and the stateless spirometry, lung-cancer screening and GI alarm checks are their own family: Specialty care.",
      "name": "clinical",
      "x-displayName": "Clinical intelligence",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For specialty practices and the EMR vendors that serve them: a patient's specialty hub results through one {hub} path parameter (the hubs are listed on the call), each section under the patient's sharing switches with the domains they have not shared listed in withheld; the four direct specialty checks (eGFR as a number with its trend and never a KDIGO stage, the GLP-1 MTC/MEN2 check, the colonoscopy interval, the heart-failure symptom check); and stateless spirometry, lung-cancer screening and GI alarm checks that take your values and store nothing. Treating practices only. Questionnaires stay in Clinical intelligence (one instrument registry).",
      "name": "specialty",
      "x-displayName": "Specialty care",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "The rest of a practice's day from your own system: the member annual review a physician hands the patient (data or PDF, for the findings you select; urgent and practice-internal findings refused), one clinician's morning brief, rule-based outreach drafts for open worklist findings (never sent by the call), the practice's quarterly value report and programme outcomes report as aggregates with small cells withheld (JSON or PDF; observational, no dollar figure), clinicians' licence and NPI fields with their verification state, a telehealth video room for an existing appointment, the benefits-coordination worklist, and invitations for an imported patient to claim their own account (Norvya sends the invitation; the code goes to the patient only). Treating practices only.",
      "name": "practice_ops",
      "x-displayName": "Practice operations & reports",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Send your panel (a FHIR Bulk Data export, or a spreadsheet with a saved column mapping). You get a dry run first; patients are created only after commit, under a practice-of-record basis with a BAA on file.",
      "name": "data_in",
      "x-displayName": "Data in",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Send what your own system measured for a member, keyed by your id so a resend replaces and a delete retracts: vitals, body measurements and lab results (practices, with a BAA; recorded with your organisation as the source and coded to LOINC / UCUM where Norvya is sure of the code), and completed workouts (gyms and fitness apps) that strength progress, weekly sets and readiness then read. Every value lands in the member's provenance-bearing observation record, never as a silent overwrite of something the member entered.",
      "name": "member_data",
      "x-displayName": "Member data in: observations and workouts",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Attach claims you already hold to your members: CMS CCLF files (Parts A, B and D) or a plan's claims in the documented generic shape. A dry run first (counts, match rate, rejections by code and row number, never a value), then an asynchronous commit and a claims.import_completed webhook. Claims match on your member reference, the member's MBI or plan member id (fingerprinted in memory, never stored), never on name or birth date; unmatched claims are dropped. Per member: a claims summary (settings, diagnoses, prescription fills) alongside what the member connected through Blue Button, and the member's record connections. Risk scores are refused unless an official CMS-HCC model is loaded. Claims never rewrite the member's own condition or medication list. Risk-adjustment audit evidence per member: the diagnosis codes in your imported claims with the dated claims documenting each, grouped into CMS-HCC categories only when an official model is loaded, never a risk score.",
      "name": "claims",
      "x-displayName": "Claims in",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Health-related social needs as a closed loop: request a validated screen (AHC-HRSN and others) from your system, read the coded findings (SNOMED CT / ICD-10-CM Z codes), make a referral to a community organisation and track it to accepted, completed or declined, with webhooks for completed screens and referral updates. Community care: the VA Community Care, IHS Purchased/Referred Care and TRICARE referrals and authorisations your staff keyed in, with visits used, documentation due dates and what needs attention. Norvya does not authorise care or determine eligibility; the agency's portal remains the system of record. Treating practices only.",
      "name": "programs",
      "x-displayName": "Social needs & programmes",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For military units and first-responder organisations only: readiness as counts (physiology off members' own baselines, training-load bands, duty status) over the members who share biometrics with the unit. Nothing below the minimum cell, small cells and dominant states withheld, no questionnaire or behavioural-health field (enforced in code), no individual. Never a projection: projection.available is always false. A conversation starter, not a duty-status or deployability determination; Norvya is not a DoD system of record.",
      "name": "readiness",
      "x-displayName": "Unit readiness",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For EMR vendors and practices, with no EHR registration needed: find a patient's member_ref from your own MRN and date of birth, fetch the same CDS Hooks cards Norvya's hook service returns and render them natively, and get the pre-visit brief as a FHIR R4 DocumentReference to file in the chart. Medical practices only; each patient's sharing choices apply.",
      "name": "ehr_rest",
      "x-displayName": "EHR embedding: cards and chart documents",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "SMART on FHIR app launch and a registered CDS Hooks service, so Norvya opens inside the clinician's EHR. The REST cards and chart documents above need none of this registration.",
      "name": "ehr",
      "x-displayName": "EHR embedding: SMART launch and CDS Hooks",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Report from your own system to the state, one explicit call at a time. Immunization registry: readiness of your connection, the patient's record with a reference per dose, a preview of what the HL7 v2 VXU would contain, the submission itself with the registry's acknowledgement and retry state, and history queries (Z34 / Z44) whose returned doses land on the record. Electronic case reporting: match a patient against the CSTE / CDC / APHL trigger codes (a match is never a statement that a case is reportable), confirm or dismiss, build the FHIR eICR, transmit it, and read or file the Reportability Response. Syndromic surveillance (NSSP): record an emergency or urgent-care visit with its chief complaint and send its HL7 v2 ADT message. Webhooks for registry acknowledgements and Reportability Responses. Treating practices and hospitals only; every transmission is audited before it leaves.",
      "name": "public_health",
      "x-displayName": "Public-health reporting",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Your whole panel at once. Aggregate counts (panel size, worklist priority tiers, rising risk, care gaps by measure) with small-cell suppression: counts below the minimum cell are withheld, and so is any cell that could be recovered by subtraction. Five eCQM-style quality measures and the Million Hearts ABCS as suppressed rates; these are NOT a certified eCQM calculation. A QRDA Category III file for 2026 with true counts, not submission-validated, audited. Asynchronous FHIR Bulk Data export of the panel, identified (each patient's sharing choices apply) or HIPAA Safe Harbor de-identified, audited per file. Programme reporting: HRSA UDS tables and the UDS+ FHIR submission for health centres, EPSDT screening counts (explicitly not a CMS-416 report), social-needs screening and referral counts, and HEDIS only where your organisation holds an NCQA licence and uploaded its own measure definitions (Norvya ships no HEDIS logic). Medical practices and programme clinics only.",
      "name": "population",
      "x-displayName": "Population",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For practice-management and revenue-cycle systems. Appointments both ways: send yours by your own appointment id (idempotent; cancelling never deletes) so the pre-visit brief is ready before each visit, and read every appointment of the practice, including those patients booked in Norvya, on the practice's clock with cursor paging. Norvya does not send its own reminders for appointments your system sent unless the practice turns that on. Care-management minutes and remote-monitoring days per patient per program per month (CCM, PCM, chronic pain, RPM, RTM, APCM, CoCM, BHI, TCM), with the program's published reference marks reached and its reference codes, each labelled a candidate for your biller's review: never a charge, an eligibility determination or a code selected for the patient. Billing candidates for staff review. No Surprises Act Good Faith Estimates from your codes and charges, with Norvya's required-contents check and a PDF in the patient's language. Not exposed: claim submission, ERA posting and eligibility-file intake; your practice-management system remains the claims engine. Treating practices only.",
      "name": "billing",
      "x-displayName": "Billing & scheduling",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For hospitals: send your HL7 v2 admission/discharge (ADT) feed and get counts back (never names or record numbers); a discharge opens the patient's 30-day follow-up. Run the follow-up from your own care-management system: the worklist (day N of 30, the 48-72 hour call, the 7-day visit, medicine reconciliation, red flags from the patient's check-ins with their MedlinePlus or CDC source), LACE and HOSPITAL scores only when every input is recorded, write-back of calls, visits, closes and returns, and operational outcomes with small cells withheld (not risk-adjusted HRRP measures; days at home only where ascertained). For practices on the receiving side: the admissions, discharges and ED visits Norvya received for your patients, with the Transitional Care Management clock, plus webhooks for each.",
      "name": "transitions",
      "x-displayName": "Care transitions",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For hospitals: open and close hospital-at-home episodes (the admission attestations are your clinician's, recorded as such), read contacts against your own protocol, escalations and the NEWS2 observation timeline, with a webhook on each escalation. A patient's observed days at home from recorded care events, only inside a recorded ascertainment period (no period, no number), and the wound log: each wound's location and assessment dates (never its measurements, which are image-based estimates, never the wound model's type, stage, severity, trajectory or tissue percentages, and never the photographs). Hospitals only.",
      "name": "hospital_care",
      "x-displayName": "Hospital at home, days at home & wounds",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For international patient desks and medical-travel coordinators: the inquiry desk before a journey (create an inquiry from your CRM by its own id, quote it as an immutable Good Faith Estimate version, move it through the desk's statuses and convert an accepted one to a journey), open and run care journeys (forward-only phases, the patient's acceptance first), the journey's in-app thread with the patient and the caregiver they approved (your posts shown as your system, never a person), flights and transfers with live status where a provider is configured, the care team and its hours, approval progress, the partner-hospital directory (accreditations as recorded; Norvya verifies none), home nursing under the letter of guarantee (the LOG is the gate: no shift beyond it), visit records, satisfaction surveys, a sponsor's referral for a patient without the app, the HL7 International Patient Summary, the repatriation packet and the bilingual summary for the clinician at home, weekly nursing reports and monthly invoices in the sponsor's language, and machine translation of a journey's free text. Visit notes, approvals and consents stay with the named people who attest to them in Norvya.",
      "name": "travel",
      "x-displayName": "Medical travel",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For geriatric practices, GUIDE-style dementia programmes and aging services: an older patient's falls risk tier (CDC STEADI) and falls-prevention programmes, physical function (Katz ADL / Lawton IADL only where the deployment holds the licence), medication burden for review (count, anticholinergic burden, sedatives; never advice), your care dyads (consent status, never the caregiver's contact details) with a staff contact log, the sleep-apnoea pathway and CPAP use (an unlogged night is unknown, not missed), the five fillable dementia risk factors (never a risk score) and the hospice review status (never an eligibility answer). Webhook: older_adults.falls_tier_raised.",
      "name": "older_adults",
      "x-displayName": "Older adults",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "What a parent or guardian shared with your practice about their child (the well-child and vaccine schedule, growth with WHO / CDC percentiles, EPSDT screening status; never adolescent screening answers, the newborn record or milestone checklists) and a patient's own pregnancy or postpartum summary.",
      "name": "life_stages",
      "x-displayName": "Life stages",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For employers and the practices that examine their workers: the employer's GLP-1 programme (settings, enrolment code, an outcomes report with small cells suppressed and no person in it), wellness challenges and their suppressed results, the occupational-health worker roster, exam programmes, exams and next-due dates on a fixed released-field view, work injuries reported by the examining practice, and the organisation's own staff wellbeing aggregate. Webhooks: employer.challenge_completed, occupational.exam_due.",
      "name": "employer",
      "x-displayName": "Employers & occupational health",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For medical spas: pre-treatment clearances, treatments recorded against the member, adverse events reported and followed, re-treatment due dates and the aftercare photos the member chose to share. Webhook: medspa.adverse_event_reported. The medical director's GLP-1 oversight roster: patients on a GLP-1 who share their medication data, each finding quoting the FDA label with its citation (pending clinician sign-off; never a dose suggestion).",
      "name": "medspa",
      "x-displayName": "Med spas",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Rehab episodes with the lead therapist and restrictions, home exercise programs with recorded days (an unrecorded day is not a missed one), goals, home-safety recommendations, IDDSI diet levels for dysphagia, standardised outcome measures scored server-side and a practice outcomes summary. Webhook: rehab.goal_met.",
      "name": "rehab",
      "x-displayName": "Rehab (PT / OT / speech)",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For dietitians and nutrition professionals: the caseload with lapse flags, a patient's food-log review, targets and meal rules released to the patient, ADIME notes, and Medical Nutrition Therapy hours with superbill candidates for the biller's review (never a charge). Webhook: nutrition.caseload_flagged.",
      "name": "nutrition",
      "x-displayName": "Nutrition (dietitians)",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Measurement-based care: the therapy caseload with PHQ-9 / GAD-7 trends, homework assigned and ended (the patient's entries never leave), and the collaborative-care (CoCM / BHI) registry with enrolment, consent, discharge and month evidence as a candidate for the biller's review; signed therapy progress notes appear in Records & documents. Psychotherapy notes, safety plans and AI drafts never leave; a designated 42 CFR Part 2 programme is refused; substance-use data appears only when the patient shares it. Webhook: cocm.review_due.",
      "name": "behavioral",
      "x-displayName": "Behavioral health",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "The survivorship caseload with open red flags (never the check-in answers), a patient's treatment episodes and care plan, and a staged FHIR treatment-summary import: dry run, then commit or discard by a named clinician.",
      "name": "oncology",
      "x-displayName": "Oncology",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "Lesion photo history and rechecks due, HS and acne severity scores, patch tests and their reads, and dermatology wound records (the record and its assessment dates, no measurements). No image bytes and no AI classification: the skin classifier is its own family below and is switched off. Webhooks: derm.lesion_recheck_due, derm.patch_test_read_recorded.",
      "name": "derm",
      "x-displayName": "Dermatology",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "The skin-lesion classifier is built but switched off by product decision: every call answers 409 skin_classifier_not_enabled, and a continuous-monitoring check fails if it is ever turned on. Listed so nobody builds against it expecting an answer.",
      "name": "derm_ai",
      "x-displayName": "Skin AI (switched off)",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For pharmacies: the patient roster with dose-log adherence (an unrecorded dose is not a missed dose, and never a PDC), medication reviews to completion, discharge follow-up episodes with day-3 and day-30 checks, packing verification, deliveries, the medication sync plan (estimates from fills, never an order), monitoring and refills due. Webhooks for refills due and discharge episodes. Pharmacies only; a patient must share their medicines with the pharmacy. The assisted-living, group-home and nursing-home sites a pharmacy runs are in Care sites.",
      "name": "pharmacy",
      "x-displayName": "Pharmacy",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For the organisations that run assisted-living, group-home and nursing-home sites: pharmacies AND care-facility operators, each reaching only the sites it owns (a pharmacy named as a facility site's dispenser does not reach that site here). The census, the MAR (scheduled and PRN administrations with follow-up), rounds, medication incidents, change-of-condition reports, the resident care plan and emergency preparedness. A nursing home is the same site with site_type nursing_home, the operator's recorded licence kind and bed count, and each resident's short or long stay; Norvya does no MDS assessment, PDPM coding or CMS submission. The MAR and medication incidents need the resident's medicines shared with the organisation (at a pharmacy's site, everything does). Webhooks for changes of condition, incidents and MAR exceptions go to the site's owner. Admitting a resident (an existing patient, or one without a Norvya login by your own resident ID) and issuing, listing and revoking family read-only access, each attested by a named staff member under the app's consent rules.",
      "name": "care_sites",
      "x-displayName": "Care sites",
      "x-norvya-status": "built_gated"
    },
    {
      "description": "For hospice agencies: the census (election date, level of care as 42 CFR 418.302 names them, care site, length of stay, discharge), one patient's hospice record with the benefit period and the recertification and face-to-face dates computed from the dates your staff recorded (42 CFR 418.21 / 418.22), the IDG plan-of-care reviews due (last recorded review + 15 calendar days, 42 CFR 418.56(d)), and planned versus completed visits by discipline, where a visit is missed only when it was recorded not done. Read-only: admissions, levels of care, discharges, reviews and visit outcomes are recorded in Norvya. Never a prognosis, an eligibility statement or a billing verdict; IDG notes, staff names and family feedback stay in Norvya. Webhook: hospice.idg_review_due.",
      "name": "hospice",
      "x-displayName": "Hospice agencies",
      "x-norvya-status": "built_gated"
    }
  ],
  "webhooks": {
    "appointment.booked": {
      "post": {
        "description": "An appointment was booked in Norvya (your own writes are never echoed). Sent only while your client also holds scheduling.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_appointment_booked",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "appointment.booked",
        "tags": [
          "billing"
        ],
        "x-norvya-scope": "scheduling.read",
        "x-norvya-status": "built_gated"
      }
    },
    "appointment.cancelled": {
      "post": {
        "description": "An appointment was cancelled in Norvya (your own writes are never echoed). Sent only while your client also holds scheduling.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_appointment_cancelled",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "appointment.cancelled",
        "tags": [
          "billing"
        ],
        "x-norvya-scope": "scheduling.read",
        "x-norvya-status": "built_gated"
      }
    },
    "billing.threshold_met": {
      "post": {
        "description": "A patient's documented care-management time (or remote-monitoring days) for one program reached the program's first published reference mark this month. Sent only while your client also holds billing.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_billing_threshold_met",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "billing.threshold_met",
        "tags": [
          "billing"
        ],
        "x-norvya-scope": "billing.read",
        "x-norvya-status": "built_gated"
      }
    },
    "care_site.change_of_condition": {
      "post": {
        "description": "A change-of-condition report at one of your sites (a pharmacy's or a care facility's own). Sent only while your client also holds care_sites.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_care_site_change_of_condition",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "care_site.change_of_condition",
        "tags": [
          "care_sites"
        ],
        "x-norvya-scope": "care_sites.read",
        "x-norvya-status": "built_gated"
      }
    },
    "care_site.incident_recorded": {
      "post": {
        "description": "An incident report or a medication incident at one of your sites. Sent only while your client also holds care_sites.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_care_site_incident_recorded",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "care_site.incident_recorded",
        "tags": [
          "care_sites"
        ],
        "x-norvya-scope": "care_sites.read",
        "x-norvya-status": "built_gated"
      }
    },
    "care_site.mar_exception": {
      "post": {
        "description": "A scheduled dose recorded held or refused at one of your sites. Sent only while your client also holds care_sites.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_care_site_mar_exception",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "care_site.mar_exception",
        "tags": [
          "care_sites"
        ],
        "x-norvya-scope": "care_sites.read",
        "x-norvya-status": "built_gated"
      }
    },
    "claims.import_completed": {
      "post": {
        "description": "A claims import you sent finished committing (sent to that client only). Sent only while your client also holds claims.import.write (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_claims_import_completed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "claims.import_completed",
        "tags": [
          "claims"
        ],
        "x-norvya-scope": "claims.import.write",
        "x-norvya-status": "built_gated"
      }
    },
    "cocm.review_due": {
      "post": {
        "description": "The practice's weekly Collaborative Care caseload review is due (about the practice, not a patient: no member_ref). Sent only while your client also holds behavioral.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_cocm_review_due",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "cocm.review_due",
        "tags": [
          "behavioral"
        ],
        "x-norvya-scope": "behavioral.read",
        "x-norvya-status": "built_gated"
      }
    },
    "derm.lesion_recheck_due": {
      "post": {
        "description": "A tracked lesion of a member who shares skin scans with the practice reached its recheck date (once per lesion per due date). Sent only while your client also holds derm.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_derm_lesion_recheck_due",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "derm.lesion_recheck_due",
        "tags": [
          "derm"
        ],
        "x-norvya-scope": "derm.read",
        "x-norvya-status": "built_gated"
      }
    },
    "derm.patch_test_read_recorded": {
      "post": {
        "description": "A read was recorded on a patch test of the practice (once per read set; never an allergen or a grade). Sent only while your client also holds derm.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_derm_patch_test_read_recorded",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "derm.patch_test_read_recorded",
        "tags": [
          "derm"
        ],
        "x-norvya-scope": "derm.read",
        "x-norvya-status": "built_gated"
      }
    },
    "employer.challenge_completed": {
      "post": {
        "description": "A wellness challenge's window ended (once per challenge; the results are the suppressed group counts). Sent only while your client also holds employer.challenges.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_employer_challenge_completed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "employer.challenge_completed",
        "tags": [
          "employer"
        ],
        "x-norvya-scope": "employer.challenges.read",
        "x-norvya-status": "built_gated"
      }
    },
    "hospice.idg_review_due": {
      "post": {
        "description": "At least one patient on service at the agency has an IDG plan-of-care review due within 3 days or overdue (about the agency, not a patient: no member_ref; once per UTC day). Sent only while your client also holds hospice.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_hospice_idg_review_due",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "hospice.idg_review_due",
        "tags": [
          "hospice"
        ],
        "x-norvya-scope": "hospice.read",
        "x-norvya-status": "built_gated"
      }
    },
    "hospital_at_home.escalation": {
      "post": {
        "description": "An observation round on a hospital-at-home episode scored at or above NEWS2's urgent-response threshold. Sent only while your client also holds hospital_at_home.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_hospital_at_home_escalation",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "hospital_at_home.escalation",
        "tags": [
          "hospital_care"
        ],
        "x-norvya-scope": "hospital_at_home.read",
        "x-norvya-status": "built_gated"
      }
    },
    "import.completed": {
      "post": {
        "description": "A panel import made through the API committed. Sent only while your client also holds panel.import.write (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_import_completed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "import.completed",
        "tags": [
          "data_in"
        ],
        "x-norvya-scope": "panel.import.write",
        "x-norvya-status": "built_gated"
      }
    },
    "import.failed": {
      "post": {
        "description": "A panel import made through the API failed. Sent only while your client also holds panel.import.write (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_import_failed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "import.failed",
        "tags": [
          "data_in"
        ],
        "x-norvya-scope": "panel.import.write",
        "x-norvya-status": "built_gated"
      }
    },
    "instrument.batch_dispatched": {
      "post": {
        "description": "A caseload questionnaire batch you started finished sending its requests. Sent only while your client also holds instruments.request (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_instrument_batch_dispatched",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "instrument.batch_dispatched",
        "tags": [
          "clinical"
        ],
        "x-norvya-scope": "instruments.request",
        "x-norvya-status": "built_gated"
      }
    },
    "instrument.completed": {
      "post": {
        "description": "A patient completed a questionnaire this practice requested (after the crisis gate has run). Sent only while your client also holds instruments.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_instrument_completed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "instrument.completed",
        "tags": [
          "clinical"
        ],
        "x-norvya-scope": "instruments.read",
        "x-norvya-status": "built_gated"
      }
    },
    "medspa.adverse_event_reported": {
      "post": {
        "description": "An aesthetic adverse event was recorded at the practice (by staff, through the Partner API, or as a draft from a patient's warning-sign check-in). Sent only while your client also holds medspa.aftercare.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_medspa_adverse_event_reported",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "medspa.adverse_event_reported",
        "tags": [
          "medspa"
        ],
        "x-norvya-scope": "medspa.aftercare.read",
        "x-norvya-status": "built_gated"
      }
    },
    "member.account_claimed": {
      "post": {
        "description": "A patient the practice imported claimed their own account with the practice's invitation code. Sent only while your client also holds members.claim_invite (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_member_account_claimed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "member.account_claimed",
        "tags": [
          "practice_ops"
        ],
        "x-norvya-scope": "members.claim_invite",
        "x-norvya-status": "built_gated"
      }
    },
    "member.at_risk": {
      "post": {
        "description": "A member newly entered churn level high in the daily scan. Sent only while your client also holds fitness.roster.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_member_at_risk",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "member.at_risk",
        "tags": [
          "fitness"
        ],
        "x-norvya-scope": "fitness.roster.read",
        "x-norvya-status": "built_gated"
      }
    },
    "member.joined": {
      "post": {
        "description": "A person linked to your organisation from the app's join screen. Sent only while your client also holds members.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_member_joined",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "member.joined",
        "tags": [
          "engagement"
        ],
        "x-norvya-scope": "members.read",
        "x-norvya-status": "built_gated"
      }
    },
    "message.received": {
      "post": {
        "description": "A member wrote to your organisation in its in-app conversation. Sent only while your client also holds messages.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_message_received",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "message.received",
        "tags": [
          "engagement"
        ],
        "x-norvya-scope": "messages.read",
        "x-norvya-status": "built_gated"
      }
    },
    "nutrition.caseload_flagged": {
      "post": {
        "description": "A member of the dietitian caseload carries a caseload flag: no food logged for 7 days, or 14-day calories outside 10 % of the target (Norvya conventions, not clinical guidelines). Sent only while your client also holds nutrition.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_nutrition_caseload_flagged",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "nutrition.caseload_flagged",
        "tags": [
          "nutrition"
        ],
        "x-norvya-scope": "nutrition.read",
        "x-norvya-status": "built_gated"
      }
    },
    "occupational.exam_due": {
      "post": {
        "description": "An exam of an active worker, not completed or cancelled, is due soon or past due (once per exam and due date). Sent only while your client also holds occupational.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_occupational_exam_due",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "occupational.exam_due",
        "tags": [
          "employer"
        ],
        "x-norvya-scope": "occupational.read",
        "x-norvya-status": "built_gated"
      }
    },
    "older_adults.falls_tier_raised": {
      "post": {
        "description": "A patient's newest CDC STEADI self-check set a higher falls tier than their previous one, and the new tier is moderate or high. Sent only while your client also holds older_adults.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_older_adults_falls_tier_raised",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "older_adults.falls_tier_raised",
        "tags": [
          "older_adults"
        ],
        "x-norvya-scope": "older_adults.read",
        "x-norvya-status": "built_gated"
      }
    },
    "patient.admitted": {
      "post": {
        "description": "An admission matched to one of the practice's patients and visible to it. Sent only while your client also holds transitions.notices.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_patient_admitted",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "patient.admitted",
        "tags": [
          "transitions"
        ],
        "x-norvya-scope": "transitions.notices.read",
        "x-norvya-status": "built_gated"
      }
    },
    "patient.attention_needed": {
      "post": {
        "description": "A patient newly entered the top priority band in a completed current-data run. Sent only while your client also holds clinical.panel.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_patient_attention_needed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "patient.attention_needed",
        "tags": [
          "clinical"
        ],
        "x-norvya-scope": "clinical.panel.read",
        "x-norvya-status": "built_gated"
      }
    },
    "patient.discharged": {
      "post": {
        "description": "A discharge matched to one of the practice's patients and visible to it. Sent only while your client also holds transitions.notices.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_patient_discharged",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "patient.discharged",
        "tags": [
          "transitions"
        ],
        "x-norvya-scope": "transitions.notices.read",
        "x-norvya-status": "built_gated"
      }
    },
    "patient.ed_visit": {
      "post": {
        "description": "An ED visit matched to one of the practice's patients and visible to it. Sent only while your client also holds transitions.notices.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_patient_ed_visit",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "patient.ed_visit",
        "tags": [
          "transitions"
        ],
        "x-norvya-scope": "transitions.notices.read",
        "x-norvya-status": "built_gated"
      }
    },
    "pharmacy.discharge_episode_opened": {
      "post": {
        "description": "A discharge follow-up episode opened. Sent only while your client also holds pharmacy.patients.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_pharmacy_discharge_episode_opened",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "pharmacy.discharge_episode_opened",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-scope": "pharmacy.patients.read",
        "x-norvya-status": "built_gated"
      }
    },
    "pharmacy.refill_due": {
      "post": {
        "description": "A pack cycle of the pharmacy became due soon or overdue. Sent only while your client also holds pharmacy.patients.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_pharmacy_refill_due",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "pharmacy.refill_due",
        "tags": [
          "pharmacy"
        ],
        "x-norvya-scope": "pharmacy.patients.read",
        "x-norvya-status": "built_gated"
      }
    },
    "population.export_completed": {
      "post": {
        "description": "A FHIR Bulk export you started finished (sent to that client only). Sent only while your client also holds population.export (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_population_export_completed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "population.export_completed",
        "tags": [
          "population"
        ],
        "x-norvya-scope": "population.export",
        "x-norvya-status": "built_gated"
      }
    },
    "public_health.case_report_response": {
      "post": {
        "description": "A Reportability Response was filed for one of the practice's eICRs. Sent only while your client also holds public_health.case_reports.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_public_health_case_report_response",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "public_health.case_report_response",
        "tags": [
          "public_health"
        ],
        "x-norvya-scope": "public_health.case_reports.read",
        "x-norvya-status": "built_gated"
      }
    },
    "public_health.iis_ack_received": {
      "post": {
        "description": "A state immunization registry acknowledged a dose report of the practice. Sent only while your client also holds public_health.immunizations.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_public_health_iis_ack_received",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "public_health.iis_ack_received",
        "tags": [
          "public_health"
        ],
        "x-norvya-scope": "public_health.immunizations.read",
        "x-norvya-status": "built_gated"
      }
    },
    "rehab.goal_met": {
      "post": {
        "description": "A functional goal the practice set was marked met (once per goal; only while the patient shares their medical history). Sent only while your client also holds rehab.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_rehab_goal_met",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "rehab.goal_met",
        "tags": [
          "rehab"
        ],
        "x-norvya-scope": "rehab.read",
        "x-norvya-status": "built_gated"
      }
    },
    "roster.enrolment_summary": {
      "post": {
        "description": "A roster you uploaded and committed has new enrolment numbers (at most once a UTC day per roster, only when its counts changed). Sent only while your client also holds members.roster.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_roster_enrolment_summary",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "roster.enrolment_summary",
        "tags": [
          "roster"
        ],
        "x-norvya-scope": "members.roster.read",
        "x-norvya-status": "built_gated"
      }
    },
    "social_needs.referral_updated": {
      "post": {
        "description": "A closed-loop community referral of the practice was created or changed status. Sent only while your client also holds social_needs.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_social_needs_referral_updated",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "social_needs.referral_updated",
        "tags": [
          "programs"
        ],
        "x-norvya-scope": "social_needs.read",
        "x-norvya-status": "built_gated"
      }
    },
    "social_needs.screening_completed": {
      "post": {
        "description": "A patient submitted an AHC-HRSN screen. Sent only while your client also holds social_needs.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_social_needs_screening_completed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "social_needs.screening_completed",
        "tags": [
          "programs"
        ],
        "x-norvya-scope": "social_needs.read",
        "x-norvya-status": "built_gated"
      }
    },
    "transition.episode_enrolled": {
      "post": {
        "description": "A post-discharge episode opened at the hospital (staff desk, Partner API or an ADT A03). Sent only while your client also holds transitions.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_transition_episode_enrolled",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "transition.episode_enrolled",
        "tags": [
          "transitions"
        ],
        "x-norvya-scope": "transitions.read",
        "x-norvya-status": "built_gated"
      }
    },
    "transition.red_flag": {
      "post": {
        "description": "A patient's check-in tripped a new red flag. Sent only while your client also holds transitions.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_transition_red_flag",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "transition.red_flag",
        "tags": [
          "transitions"
        ],
        "x-norvya-scope": "transitions.read",
        "x-norvya-status": "built_gated"
      }
    },
    "travel.inquiry_updated": {
      "post": {
        "description": "An inquiry of the desk was created (in Norvya, through the API or from a hospital's request link) or changed status, including a new quote version and conversion. Sent only while your client also holds travel.inquiries.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_travel_inquiry_updated",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "travel.inquiry_updated",
        "tags": [
          "travel"
        ],
        "x-norvya-scope": "travel.inquiries.read",
        "x-norvya-status": "built_gated"
      }
    },
    "travel.invoice_issued": {
      "post": {
        "description": "A monthly nursing invoice was issued. Sent only while your client also holds travel.billing.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_travel_invoice_issued",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "travel.invoice_issued",
        "tags": [
          "travel"
        ],
        "x-norvya-scope": "travel.billing.read",
        "x-norvya-status": "built_gated"
      }
    },
    "travel.journey_message_posted": {
      "post": {
        "description": "Someone wrote in a journey's thread: the patient, their caregiver, desk staff in Norvya or another of your clients. Sent only while your client also holds travel.messages.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_travel_journey_message_posted",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "travel.journey_message_posted",
        "tags": [
          "travel"
        ],
        "x-norvya-scope": "travel.messages.read",
        "x-norvya-status": "built_gated"
      }
    },
    "travel.journey_updated": {
      "post": {
        "description": "A journey of the desk was opened, accepted or declined, moved a phase, or its nursing status changed. Sent only while your client also holds travel.journeys.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_travel_journey_updated",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "travel.journey_updated",
        "tags": [
          "travel"
        ],
        "x-norvya-scope": "travel.journeys.read",
        "x-norvya-status": "built_gated"
      }
    },
    "travel.leg_status_changed": {
      "post": {
        "description": "A flight or transfer was added, changed status or was cancelled. Sent only while your client also holds travel.journeys.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_travel_leg_status_changed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "travel.leg_status_changed",
        "tags": [
          "travel"
        ],
        "x-norvya-scope": "travel.journeys.read",
        "x-norvya-status": "built_gated"
      }
    },
    "travel.nursing_visit_recorded": {
      "post": {
        "description": "A nurse recorded a visit note. Sent only while your client also holds travel.nursing.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_travel_nursing_visit_recorded",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "travel.nursing_visit_recorded",
        "tags": [
          "travel"
        ],
        "x-norvya-scope": "travel.nursing.read",
        "x-norvya-status": "built_gated"
      }
    },
    "worklist.item_triaged": {
      "post": {
        "description": "A worklist finding was triaged by staff in the app or by another of the practice's clients (never echoed to the client that made the change). Sent only while your client also holds clinical.panel.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_worklist_item_triaged",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "worklist.item_triaged",
        "tags": [
          "clinical"
        ],
        "x-norvya-scope": "clinical.panel.read",
        "x-norvya-status": "built_gated"
      }
    },
    "worklist.run_completed": {
      "post": {
        "description": "A worklist run of the practice completed. Sent only while your client also holds clinical.panel.read (and webhooks.manage). Signed with Norvya-Signature; see the webhooks guide.",
        "operationId": "webhook_worklist_run_completed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Delivered. Anything else is retried (redirects are not followed)."
          }
        },
        "summary": "worklist.run_completed",
        "tags": [
          "clinical"
        ],
        "x-norvya-scope": "clinical.panel.read",
        "x-norvya-status": "built_gated"
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "Foundation",
      "tags": [
        "platform",
        "engagement",
        "events",
        "records"
      ]
    },
    {
      "name": "Clinical",
      "tags": [
        "clinical",
        "specialty",
        "practice_ops",
        "ehr_rest",
        "ehr"
      ]
    },
    {
      "name": "Specialty practices",
      "tags": [
        "behavioral",
        "oncology",
        "derm",
        "derm_ai",
        "rehab",
        "nutrition",
        "medspa"
      ]
    },
    {
      "name": "Life stages & aging",
      "tags": [
        "older_adults",
        "life_stages",
        "hospice"
      ]
    },
    {
      "name": "Data in",
      "tags": [
        "data_in",
        "roster",
        "member_data",
        "claims"
      ]
    },
    {
      "name": "Population & programmes",
      "tags": [
        "population",
        "programs",
        "public_health",
        "readiness"
      ]
    },
    {
      "name": "Operations",
      "tags": [
        "transitions",
        "hospital_care",
        "billing",
        "pharmacy",
        "care_sites",
        "travel"
      ]
    },
    {
      "name": "Employers & fitness",
      "tags": [
        "employer",
        "fitness"
      ]
    }
  ]
}
