MEDEVIO API -- Working Notes
General Architecture
- Frontend: React + Material-UI (MUI) + Apollo GraphQL
- Backend: GraphQL API ->
https://api.medevio.cz/graphql
- Authentication: cookies/tokens stored in
medevio_storage.json (Playwright session)
- Frontend base:
https://my.medevio.cz/mudr-buzalkova/klinika/...
- Session handling: token refreshed through
AccessToken_AuthSelf calls
Authentication and Session
Reuse session cookies from Playwright:
Use these cookies in every requests.post(GRAPHQL_URL, headers, cookies, data=...) call.
HTTP Setup (Python)
Key IDs
| Entity |
ID |
| Clinic |
25f24970-dae3-4f80-9337-d3616e53fb10 |
| Clinic slug |
mudr-buzalkova |
| Calendar MUDr. Buzalkova |
144c4e12-347c-49ca-9ec0-8ca965a4470d |
| AIS entity (Medicus) |
ef1549a5-d266-4f52-9a4d-7275e79ac82e |
Complete GraphQL Operations Catalog
Session & Auth
| Operation |
Purpose |
AccessToken_AuthSelf |
Verify or refresh session |
Search
| Operation |
Variables |
Response |
Search |
clinicSlug, locale, query |
clinic, results (patients + requests) |
Patient Card (modal)
| Operation |
Variables |
Response |
ClinicPatientDetailModal_GetData |
clinicSlug, patientId, patientUuid, locale, challengesStatus |
clinic, calendars, patient (full detail), challenges, patientRequestsResponse, treatmentPlanPatients, premiumPlans, insuranceCards, pinnedRequests, canBeRemoved |
ClinicPatientRequestHistory_FilterPatientRequestsForClinic |
clinicSlug, locale, patientId, patientRequestFilter, pageInfo {first, offset} |
filterResponse, clinic, queues, calendars, userECRFs, substates, tags |
ClinicPatientDetailModal_FindMergeSuggestions |
clinicSlug, patientUuid |
mergeSuggestions |
Patient object structure (from GetData)
Patient Edit
| Operation |
Variables |
Response |
EditPatientModal_GetClinic |
clinicSlug |
clinic |
ClinicEditPatient_GetPatientForClinic |
clinicSlug, patientId, includePatient |
patient, clinic |
ClinicEditPatient_ListInsuranceCompanies |
country |
insuranceCompanies [] (id, code, name) |
UseSupportedCountryCodes_Codes |
(none) |
codes (phone country codes) |
Patient List (Kartoteka)
| Operation |
Variables |
Response |
LegacyClinicPatientListPage_ListClinicPatients |
clinicSlug, criteria {premiumPlanId, tagId}, pageInfo {first: 50, offset} |
count, patients, clinic |
Requests (Pozadavky)
| Operation |
Variables |
Response |
ClinicLegacyRequestList_ListPatientRequestsForClinic |
clinicSlug, locale, pageInfo {first: 30, offset}, queueAssignment, queueId, state (ACTIVE/DONE) |
requests, clinic |
Request list item structure
Request Detail
| Operation |
Variables |
Response |
ClinicRequestDetail_GetPatientRequest2 |
clinicSlug, isDoctor, requestId, locale |
request (full detail) |
UseMessages_ListMessages |
requestId, updatedSince |
messages |
Communication_GetClinicFooter |
clinicSlug |
footer |
ClinicRequestNotes_Get |
patientRequestId |
notes |
Request detail structure
Calendar (Kalendar)
| Operation |
Variables |
Response |
ClinicCalendar_ListClinicReservations |
calendarIds [], clinicCountry, clinicSlug, locale, since (ISO), until (ISO), showTimeSlots, schedulePatientId, emptyCalendarIds |
holidays, reservations, vacations |
ClinicCalendar_GetWindows |
calendarIds [], clinicSlug, locale, since, until |
calendarWindows (ordinacni hodiny) |
Reservation structure
References (Referovani)
| Operation |
Variables |
Response |
ClinicReferences_GetClinic |
clinicSlug |
clinic, substates |
ClinicReferences_ListReferencesSentByClinic |
clinicSlug, locale, pageInfo {first: 51, offset} |
references |
Treatment Plans (Lecebne plany)
| Operation |
Variables |
Response |
PlanPatientsPage_GetClinic |
clinicSlug |
clinic |
PlanPatientsPage_ListPlanPatients |
clinicSlug, pageInfo {first: 51, offset} |
planPatients |
Settings (Nastaveni)
| Operation |
Purpose |
ClinicSettingsSubNavigation_GetClinic |
Navigation state for settings |
ClinicRequestSettings_GetClinic |
Request settings |
UserEcrfListing_GetClinicECRFMenu |
List request types (ECRF forms) |
ClinicEcrfSet_ListECRFSets |
List request type groups |
ClinicOpeningHoursEdit_GetClinicOpeningHours2 |
Opening hours settings |
ClinicPaymentsSettings_GetClinic |
Payment settings |
StripeVerificationContext_GetClinicCompanyInfo |
Stripe payment verification |
SettingsPage |
General settings |
InviteSettings |
Invite settings |
InviteSettings_GetInviteContent |
Invite content/templates |
ImportAisSettings_GetClinic |
AIS integration settings |
ImportAisSettings_GetAises |
Available AIS systems |
ClinicUserGrid_Columns |
User grid columns (queues, calendars) |
ClinicUserGrid_Rows |
User list for clinic |
Clinic Info
| Operation |
Purpose |
ClinicNavigation_GetClinic |
Basic clinic info |
ClinicAgenda_GetCalendarsForClinic |
List calendars within clinic |
Playwright Selectors
| Purpose |
Selector |
| Agenda rows |
div[data-testid='reservation-row'] |
| Row ID |
data-id |
| Agenda fields |
div[data-field='Time'], div[data-field='Patient'], div[data-field='Reason'] |
URL Patterns
| Page |
URL |
| Search |
/mudr-buzalkova/klinika/hledat/?q={query} |
| Patient card |
/mudr-buzalkova/klinika/hledat/?q={query}&pacient={uuid} |
| Request detail |
/mudr-buzalkova/klinika/hledat/?q={query}&pozadavek={uuid} |
| Requests (active) |
/mudr-buzalkova/klinika/pozadavky/ |
| Requests (done) |
/mudr-buzalkova/klinika/pozadavky?vyrizene=1 |
| Calendar |
/mudr-buzalkova/klinika/kalendar/?kalendar={calendarId}&pohled=pracovni-tyden |
| Patient list |
/mudr-buzalkova/klinika/kartoteka/ |
| References |
/mudr-buzalkova/klinika/reference |
| Treatment plans |
/mudr-buzalkova/klinika/lecebne-plany/pacienti |
| Settings - requests |
/mudr-buzalkova/klinika/nastaveni/pozadavky |
| Settings - groups |
/mudr-buzalkova/klinika/nastaveni/skupiny-pozadavku |
| Settings - invites |
/mudr-buzalkova/klinika/nastaveni/pozvanky |
| Settings - integrations |
/mudr-buzalkova/klinika/nastaveni/propojky |
| Settings - hours |
/mudr-buzalkova/klinika/nastaveni/ordinacni-doba |
| Settings - payments |
/mudr-buzalkova/klinika/nastaveni/platby |
| Users |
/mudr-buzalkova/klinika/uzivatele/ |
Insurance Companies (CZ)
| Code |
Name |
| 0 |
Ministerstvo zdravotnictvi CR |
| 111 |
VZP |
| 201 |
VoZP |
| 205 |
CPZP |
| 207 |
OZP |
| 209 |
ZPS |
| 211 |
ZPMV |
| 213 |
RBP |
| 999 |
Jina |
Clinic Features (enabled)
RESERVATION_REMINDERS, PUSH_NOTIFICATIONS, INVITES, ON_DEMAND_SLOT_GENERATOR,
REQUEST_TYPES_ACCESS_RULES, CAN_REFER_PATIENTS, TREATMENT_PLANS_V2,
MEDICAL_RECORDS, CAMPAIGNS, PATIENT_SEGMENTATION, ADVANCED_CALENDAR_FUNCTIONS,
PATIENT_CLINIC_STATUS, STANDARD_TARIFF_FUNCTIONS, CLINIC_CLOSED_WARNINGS,
ADVANCED_SWITCHBOARD, REQUEST_AUTOMATIONS, REQUEST_PINNING,
AI_SWITCHBOARD_PROMO, PATIENT_REQUEST_SUBSTATES
Security / Maintenance Notes
- GraphQL introspection disabled.
- Refresh session cookies periodically.
- Keep data GDPR-compliant.
Future Tasks
- Automate cookie renewal.
- Build helper functions:
get_reservations(date) using ClinicCalendar_ListClinicReservations
get_reservation_detail(reservation_id)
get_patient(patient_id) using ClinicPatientDetailModal_GetData
list_patients(offset) using LegacyClinicPatientListPage_ListClinicPatients
search_patients(query) using Search
get_requests(state, offset) using ClinicLegacyRequestList_ListPatientRequestsForClinic
get_request_detail(request_id) using ClinicRequestDetail_GetPatientRequest2
- Map vaccine keywords.
- Export to Excel/MySQL for vaccine order planning.