Feegow MCP by usefulapi
Read clinic appointments, patients and finances; manage bookings and patient registration.
사용해야 할까요
품질 및 안전성
발견 사항 (4)
- LOWfeegow_list_professional_insurances에서
- LOWfeegow_list_appointment_statuses에서
- LOWfeegow_list_appointment_reasons에서
- LOWfeegow_update_appointment_status에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"feegow": {
"url": "https://feegow.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://feegow.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (26)
🟢feegow_list_units
The clinic's main unit (matriz, unidade_id 0) and its branches, with trade name, CNPJ, address and contacts. Use the unit ids to filter other tools. GET /company/list-unity.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_locations
Rooms/locations registered in each unit (id, name, unidade_id). The location id is needed to create appointments. GET /company/list-local.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_specialties(unit_id)
Medical specialties offered, with their default consultation procedure ids and whether they show in online booking. GET /specialties/list.
입력 스키마
{
"type": "object",
"properties": {
"unit_id": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Unit (branch) id. 0 = the main clinic (matriz). Omit for all units where the endpoint allows it. See feegow_list_units."
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_professionals(active, unit_id, specialty_id)
Doctors and other professionals (names and ids), active or inactive, optionally by unit or specialty. GET /professional/list.
입력 스키마
{
"type": "object",
"properties": {
"active": {
"description": "true (default) = active professionals, false = inactive.",
"type": "boolean"
},
"unit_id": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Unit (branch) id. 0 = the main clinic (matriz). Omit for all units where the endpoint allows it. See feegow_list_units."
},
"specialty_id": {
"description": "Only professionals of this specialty (see feegow_list_specialties).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_get_professional(professional_id)
One professional's details and specialties. GET /professional/search.
입력 스키마
{
"type": "object",
"properties": {
"professional_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Feegow professional id (see feegow_list_professionals)."
}
},
"required": [
"professional_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_professional_insurances(professional_id)
Health insurances (convênios) accepted by one professional. GET /professional/insurance.
입력 스키마
{
"type": "object",
"properties": {
"professional_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Feegow professional id."
}
},
"required": [
"professional_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_insurances(unit_id)
All accepted health insurances with their plans. GET /insurance/list.
입력 스키마
{
"type": "object",
"properties": {
"unit_id": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Unit (branch) id. 0 = the main clinic (matriz). Omit for all units where the endpoint allows it. See feegow_list_units."
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_procedure_types
Procedure types (consultation, exam, surgery, return...) and their ids, used by feegow_list_procedures. GET /procedures/types.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_procedures(procedure_type_id, procedure_id, name, unit_id, specialty_id, ...)
Procedures (consultations, exams...) with price IN CENTS (R$ 12.00 = 1200), duration and online-booking flag. Give a procedure type (see feegow_list_procedure_types) or one procedure id; optionally narrow by name, unit, specialty, professional, patient or price table. GET /procedures/list.
입력 스키마
{
"type": "object",
"properties": {
"procedure_type_id": {
"description": "Procedure type id (feegow_list_procedure_types).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"procedure_id": {
"description": "One procedure id (use when no type is given).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"name": {
"description": "Part of the procedure name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit_id": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Unit (branch) id. 0 = the main clinic (matriz). Omit for all units where the endpoint allows it. See feegow_list_units."
},
"specialty_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"professional_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"patient_id": {
"description": "Prices for this patient (their price table / insurance).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"price_table_id": {
"description": "Private price table id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_appointment_statuses
Appointment status ids and names (booked, confirmed, in service, attended, no-show, cancelled...), used to filter and update appointments. GET /appoints/status.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_appointment_reasons
Reasons (motivos) that cancel or reschedule an appointment can carry; the id is required by feegow_cancel_appointment and feegow_reschedule_appointment. GET /appoints/motives.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_booking_channels
Channels an appointment can be booked through (online booking, clinic...). GET /appoints/list-channel.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_patient_sources
Patient acquisition sources (origens) and their ids, used when creating a patient. GET /patient/list-sources.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_appointments(appointment_id, date_from, date_to, professional_id, patient_id, ...)
Appointments in a date range (or one appointment by id), filtered by professional, patient, unit, location, specialty, channel, procedure or status. Paged: pass the previous reply's next_start. Health data: contains patient ids. GET /appoints/search.
입력 스키마
{
"type": "object",
"properties": {
"appointment_id": {
"description": "One appointment id; then the dates are optional.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"date_from": {
"description": "First day, yyyy-mm-dd. Required unless appointment_id is given.",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"date_to": {
"description": "Last day, yyyy-mm-dd. Required unless appointment_id is given.",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"professional_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"patient_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"unit_id": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Unit (branch) id. 0 = the main clinic (matriz). Omit for all units where the endpoint allows it. See feegow_list_units."
},
"location_id": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"specialty_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"channel_id": {
"description": "Booking channel id (feegow_list_booking_channels).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"procedure_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"status_ids": {
"description": "Only these statuses (feegow_list_appointment_statuses), e.g. [1, 7] for booked.",
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"is_return": {
"description": "true = only return visits (retorno).",
"type": "boolean"
},
"start": {
"description": "Position of the first row (default 0). Use next_start from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"page_size": {
"description": "Rows per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_get_available_schedule(kind, specialty_id, procedure_id, date_from, date_to, ...)
Free appointment times for a specialty or a procedure between two dates, optionally for one professional, unit or insurance. Use before feegow_create_appointment. GET /appoints/available-schedule.
입력 스키마
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"specialty",
"procedure"
],
"description": "What to search by: a specialty or a procedure."
},
"specialty_id": {
"description": "Required when kind is specialty.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"procedure_id": {
"description": "Required when kind is procedure.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"date_from": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"date_to": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"unit_id": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Unit (branch) id. 0 = the main clinic (matriz). Omit for all units where the endpoint allows it. See feegow_list_units."
},
"professional_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"insurance_id": {
"description": "Insurance (convênio) id; see feegow_list_insurances.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"age_from": {
"description": "Patient's minimum age.",
"type": "integer",
"minimum": 0,
"maximum": 130
},
"age_to": {
"description": "Patient's maximum age.",
"type": "integer",
"minimum": 0,
"maximum": 130
}
},
"required": [
"kind",
"date_from",
"date_to"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_patients(phone, cpf, source_id, changed_since, birthday, ...)
Registered patients, filtered by phone, CPF, source, birthday (dd-mm) or last-changed date. Health data (LGPD): returns names, contacts and CPF. Paged: pass the previous reply's next_offset. GET /patient/list.
입력 스키마
{
"type": "object",
"properties": {
"phone": {
"description": "Phone, digits only.",
"type": "string",
"pattern": "^\\d{1,20}$"
},
"cpf": {
"description": "CPF, digits only.",
"type": "string",
"pattern": "^\\d{1,11}$"
},
"source_id": {
"description": "Patient source id (feegow_list_patient_sources).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"changed_since": {
"description": "Only patients changed on this date, yyyy-mm-dd.",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"birthday": {
"description": "Birthday day and month, dd-mm (e.g. 30-01).",
"type": "string",
"pattern": "^(0[1-9]|[12]\\d|3[01])-(0[1-9]|1[0-2])$"
},
"include_health_program": {
"description": "true = include each patient's health program.",
"type": "boolean"
},
"offset": {
"description": "Rows to skip (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"limit": {
"description": "Rows per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_get_patient(patient_id, cpf, include_health_program, include_photo_url, fresh)
One patient by id or CPF: name, birth date, contacts, address, insurance. Health data (LGPD). Feegow caches reads for 5 minutes; set fresh=true right after an edit. GET /patient/search.
입력 스키마
{
"type": "object",
"properties": {
"patient_id": {
"description": "Feegow patient id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"cpf": {
"description": "CPF, digits only (used when no patient_id).",
"type": "string",
"pattern": "^\\d{1,11}$"
},
"include_health_program": {
"type": "boolean"
},
"include_photo_url": {
"description": "true = include the patient photo URL.",
"type": "boolean"
},
"fresh": {
"description": "true = bypass Feegow's 5-minute cache.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_patient_dependents(patient_id)
Dependents registered under one patient. Health data (LGPD). GET /patient/list-dependents.
입력 스키마
{
"type": "object",
"properties": {
"patient_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"patient_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_proposals(patient_id, date_from, date_to, date_kind)
Treatment/procedure proposals with values in REAIS (R$): for one patient, and/or created (or last changed) in a date range. Give patient_id, or both dates. GET /proposal/list.
입력 스키마
{
"type": "object",
"properties": {
"patient_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"date_from": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"date_to": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"date_kind": {
"description": "Which date the range filters: created (default) or last changed.",
"type": "string",
"enum": [
"created",
"changed"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢feegow_list_invoices(direction, date_from, date_to, unit_id, invoice_id, ...)
Financial invoices (contas) in a date range: receivables (C) or payables (D), with value, description, payer/payee, invoice number and payment details. Optionally one unit, invoice or appointment. Financial data. GET /financial/list-invoice.
입력 스키마
{
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"receivable",
"payable"
],
"description": "receivable = contas a receber (C), payable = contas a pagar (D)."
},
"date_from": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"date_to": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"unit_id": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Unit (branch) id. 0 = the main clinic (matriz). Omit for all units where the endpoint allows it. See feegow_list_units."
},
"invoice_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"appointment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"direction",
"date_from",
"date_to"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡feegow_create_appointment(patient_id, professional_id, specialty_id, procedure_id, location_id, ...)
WRITE: books a new appointment in the clinic's agenda (not in the past). Check feegow_get_available_schedule first; a taken slot or unknown patient is refused. Feegow may notify the patient (SMS/e-mail/WhatsApp) according to the clinic's own automation settings. valor is in CENTS and must be 0 with insurance. POST /appoints/new-appoint.
입력 스키마
{
"type": "object",
"properties": {
"patient_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"professional_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"specialty_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"procedure_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"location_id": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Location (room) id; see feegow_list_locations. 0 = default."
},
"date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Appointment day, yyyy-mm-dd (today or later)."
},
"time": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$",
"description": "Time of day, 24 h, HH:MM or HH:MM:SS."
},
"value_cents": {
"type": "integer",
"minimum": 0,
"maximum": 100000000,
"description": "Price in CENTS (e.g. R$ 550.00 = 55000). Must be 0 when using insurance."
},
"insurance_id": {
"description": "Insurance (convênio) id: set it, with insurance_plan_id, to book under insurance.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"insurance_plan_id": {
"description": "Plan id of the insurance. Required with insurance_id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"price_table_id": {
"description": "Private price table id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"channel_id": {
"description": "Booking channel id (feegow_list_booking_channels).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"is_return": {
"description": "true = a return visit (retorno).",
"type": "boolean"
},
"notes": {
"description": "Appointment note.",
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"mobile": {
"description": "Patient mobile phone.",
"type": "string",
"minLength": 1,
"maxLength": 30
},
"phone": {
"description": "Patient phone.",
"type": "string",
"minLength": 1,
"maxLength": 30
},
"email": {
"description": "Patient e-mail.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"patient_id",
"professional_id",
"specialty_id",
"procedure_id",
"location_id",
"date",
"time",
"value_cents"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴feegow_reschedule_appointment(appointment_id, reason_id, date, time, notes)
WRITE: moves an existing appointment to a new date and time (the old slot is released). A reason id is required (feegow_list_appointment_reasons). Feegow may notify the patient according to the clinic's settings. POST /appoints/reschedule.
입력 스키마
{
"type": "object",
"properties": {
"appointment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"reason_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Reason id from feegow_list_appointment_reasons."
},
"date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "New day, yyyy-mm-dd."
},
"time": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$",
"description": "New time, HH:MM or HH:MM:SS."
},
"notes": {
"description": "Note on the change.",
"type": "string",
"minLength": 1,
"maxLength": 1000
}
},
"required": [
"appointment_id",
"reason_id",
"date",
"time"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴feegow_cancel_appointment(appointment_id, reason_id, notes)
WRITE: cancels an existing appointment (it cannot be restored through the API; book a new one instead). A reason id is required (feegow_list_appointment_reasons). Feegow may notify the patient according to the clinic's settings. POST /appoints/cancel-appoint.
입력 스키마
{
"type": "object",
"properties": {
"appointment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"reason_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Reason id from feegow_list_appointment_reasons."
},
"notes": {
"description": "Note on the cancellation.",
"type": "string",
"minLength": 1,
"maxLength": 1000
}
},
"required": [
"appointment_id",
"reason_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴feegow_update_appointment_status(appointment_id, status_id, notes, arrival_time)
WRITE: sets an appointment's status (for example confirmed, waiting, attended, no-show) and adds a note to the agenda. Status ids: feegow_list_appointment_statuses. To cancel or move an appointment use the cancel/reschedule tools. POST /appoints/statusUpdate.
입력 스키마
{
"type": "object",
"properties": {
"appointment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"status_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"notes": {
"description": "Note added to the agenda entry.",
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"arrival_time": {
"description": "Arrival time shown in the waiting room (only for the waiting status), HH:MM.",
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$"
}
},
"required": [
"appointment_id",
"status_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡feegow_create_patient(full_name, cpf, no_cpf, birth_date, gender, ...)
WRITE: registers a new patient and returns the patient_id. Feegow does not duplicate: when a patient with the same CPF and birth date (or, without a CPF, the same name plus mobile, e-mail or birth date) exists, that patient's id is returned and nothing is created. Set no_cpf=true for a patient without CPF. Health data (LGPD): only register data the patient gave the clinic. POST /patient/create.
입력 스키마
{
"type": "object",
"properties": {
"full_name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Full name (max 200 characters)."
},
"cpf": {
"type": "string",
"pattern": "^\\d{1,11}$",
"description": "CPF, 11 digits, numbers only."
},
"no_cpf": {
"description": "true = the patient has no CPF (then cpf is ignored).",
"type": "boolean"
},
"birth_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Birth date, yyyy-mm-dd."
},
"gender": {
"type": "string",
"enum": [
"M",
"F"
],
"description": "M or F."
},
"social_name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Social name."
},
"mobile": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Mobile phone, digits only."
},
"mobile2": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Second mobile phone, digits only."
},
"phone": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Phone, digits only."
},
"phone2": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Second phone, digits only."
},
"email": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "E-mail."
},
"email2": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Second e-mail."
},
"address": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Street."
},
"number": {
"type": "string",
"minLength": 1,
"maxLength": 30,
"description": "Street number."
},
"complement": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Address complement."
},
"district": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "District (bairro)."
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "City."
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 2,
"description": "State, two letters (e.g. RJ)."
},
"zip": {
"type": "string",
"minLength": 1,
"maxLength": 9,
"description": "CEP (max 9 characters)."
},
"source_id": {
"description": "Patient source id (feegow_list_patient_sources).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"price_table_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Private price table id."
},
"notes": {
"description": "Note on the patient record.",
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"insurance_id": {
"description": "Insurance (convênio) id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"insurance_plan_id": {
"description": "Insurance plan id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"insurance_card": {
"description": "Insurance card number (matrícula).",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"insurance_holder": {
"description": "Insurance holder's name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"insurance_valid_until": {
"description": "Insurance validity, yyyy-mm-dd.",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
}
},
"required": [
"full_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴feegow_update_patient(patient_id, full_name, cpf, birth_date, gender, ...)
WRITE: changes a patient's registration data. Only the fields you pass are sent; they overwrite stored values. CPF can only be set when absent, never replaced after registration (vendor rejects a different existing CPF). Health data (LGPD). Feegow caches reads for 5 minutes (use fresh=true in feegow_get_patient to see the change). POST /patient/edit.
입력 스키마
{
"type": "object",
"properties": {
"patient_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"full_name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Full name (max 200 characters)."
},
"cpf": {
"type": "string",
"pattern": "^\\d{1,11}$",
"description": "CPF, 11 digits, numbers only."
},
"birth_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Birth date, yyyy-mm-dd."
},
"gender": {
"type": "string",
"enum": [
"M",
"F"
],
"description": "M or F."
},
"mobile": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Mobile phone, digits only."
},
"mobile2": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Second mobile phone, digits only."
},
"phone": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Phone, digits only."
},
"phone2": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Second phone, digits only."
},
"email": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "E-mail."
},
"address": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Street."
},
"number": {
"type": "string",
"minLength": 1,
"maxLength": 30,
"description": "Street number."
},
"complement": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Address complement."
},
"district": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "District (bairro)."
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "City."
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 2,
"description": "State, two letters (e.g. RJ)."
},
"zip": {
"type": "string",
"minLength": 1,
"maxLength": 9,
"description": "CEP (max 9 characters)."
},
"price_table_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Private price table id."
}
},
"required": [
"patient_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}커뮤니티
증거