diff --git a/graphql_capture_1760777115.jsonl b/graphql_capture_1760777115.jsonl new file mode 100644 index 0000000..4bb8ee4 --- /dev/null +++ b/graphql_capture_1760777115.jsonl @@ -0,0 +1,17 @@ +{"operationName": "AccessToken_AuthSelf", "variables": {}, "query": "query AccessToken_AuthSelf {\n authResponse: authSelf {\n ...MappedAuthResponse\n __typename\n }\n}\n\nfragment MappedAuthResponse on AuthResponse {\n accessToken\n expiresAt\n overrides {\n path: selector\n props\n __typename\n }\n user {\n accountFlags\n clinic {\n ...MappedClinic\n __typename\n }\n email\n id\n name\n locale\n surname\n phone\n userClinics {\n id\n clinic {\n ...MappedClinic\n __typename\n }\n __typename\n }\n __typename\n }\n roles\n __typename\n}\n\nfragment MappedClinic on Clinic {\n city\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n description\n features\n name\n id\n slug\n __typename\n}"} +{"operationName": "ClinicNavigation_GetClinic", "variables": {"clinicSlug": "mudr-buzalkova", "locale": "cs"}, "query": "query ClinicNavigation_GetClinic($clinicSlug: String!, $locale: Locale!) {\n clinic: getClinic(clinicSlug: $clinicSlug) {\n ...ClinicNavigation_Clinic\n __typename\n }\n userECRFs: listUserECRFsByClinic(clinicSlug: $clinicSlug, locale: $locale) {\n id\n __typename\n }\n}\n\nfragment ClinicNavigation_Clinic on Clinic {\n features\n type\n ...ClinicDropdown_Clinic\n __typename\n}\n\nfragment ClinicDropdown_Clinic on Clinic {\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n id\n name\n slug\n searchableSince\n type\n __typename\n}"} +{"operationName": "ClinicDocumentTitlePrefix_GetClinic", "variables": {"clinicSlug": "mudr-buzalkova"}, "query": "query ClinicDocumentTitlePrefix_GetClinic($clinicSlug: String!) {\n clinic: getClinic(clinicSlug: $clinicSlug) {\n id\n internalId\n __typename\n }\n}"} +{"operationName": "ClinicAgenda_GetCalendarsForClinic", "variables": {"clinicSlug": "mudr-buzalkova"}, "query": "query ClinicAgenda_GetCalendarsForClinic($clinicSlug: String!) {\n clinic: getClinic(clinicSlug: $clinicSlug) {\n ...ClinicAgenda_Clinic\n __typename\n }\n calendarGroups: listCalendarGroups(clinicSlug: $clinicSlug) {\n ...ClinicAgenda_CalendarGroup\n __typename\n }\n calendars: getCalendarsForClinic(clinicSlug: $clinicSlug) {\n ...ClinicAgenda_Calendar\n __typename\n }\n defaultCalendar: getDefaultCalendarForClinic2(clinicSlug: $clinicSlug) {\n id\n __typename\n }\n}\n\nfragment ClinicAgenda_Clinic on Clinic {\n id\n features\n type\n country\n __typename\n}\n\nfragment ClinicAgenda_Calendar on Calendar {\n ...CalendarTabs_Calendar\n ...GroupsControl_Calendar_Calendar\n calendarSettings {\n ignoreHolidays\n __typename\n }\n name\n userId\n __typename\n}\n\nfragment ClinicAgenda_CalendarGroup on CalendarGroup {\n ...GroupsControl_Calendar_CalendarGroup\n __typename\n}\n\nfragment CalendarTabs_Calendar on Calendar {\n id\n name\n internalName\n __typename\n}\n\nfragment GroupsControl_Calendar_Calendar on Calendar {\n id\n internalName\n name\n __typename\n}\n\nfragment GroupsControl_Calendar_CalendarGroup on CalendarGroup {\n calendars {\n ...GroupsControl_Calendar_Calendar\n __typename\n }\n id\n name\n __typename\n}"} +{"operationName": "ClinicAgenda_ListClinicReservations", "variables": {"clinicCountry": "CZ", "calendarIds": ["144c4e12-347c-49ca-9ec0-8ca965a4470d"], "clinicSlug": "mudr-buzalkova", "emptyCalendarIds": false, "since": "2025-10-17T22:00:00.000Z", "until": "2025-10-18T21:59:59.999Z", "locale": "cs", "skipCalendarWindows": true}, "query": "query ClinicAgenda_ListClinicReservations($calendarIds: [UUID!], $clinicSlug: String!, $locale: Locale!, $since: DateTime!, $until: DateTime!, $emptyCalendarIds: Boolean!, $skipCalendarWindows: Boolean!, $clinicCountry: Country = CZ) {\n calendarWindows: getCalendarWindows(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n pageInfo: {first: 10000, offset: 0}\n ) @skip(if: $skipCalendarWindows) {\n ...ClinicAgenda_CalendarSlotWindow\n __typename\n }\n holidays: getHolidays(since: $since, until: $until, countries: [$clinicCountry]) {\n ...AgendaGrid_Holiday\n __typename\n }\n recurringReservations: listClinicRecurringReservations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_RecurringReservationResponse\n __typename\n }\n reservations: listClinicReservations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_Reservation\n __typename\n }\n vacations: findVacations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_Vacation\n __typename\n }\n}\n\nfragment ClinicAgenda_CalendarSlotWindow on CalendarSlotWindow {\n ...AgendaGrid_CalendarSlotWindow\n ...CalendarSlotWindowToResolveReservationLength\n __typename\n}\n\nfragment CalendarSlotWindowToResolveReservationLength on CalendarSlotWindow {\n supportedUserEcrfs(locale: $locale) {\n id\n reservationLength\n __typename\n }\n windowUserECRFs {\n id\n clinicPatientRequestSettingsId\n reservationLength\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_CalendarSlotWindow on CalendarSlotWindow {\n id\n start\n end\n validFrom\n validTill\n dayOfWeek\n weekParity\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_Holiday on Holiday {\n endAt\n name\n startAt\n __typename\n}\n\nfragment AgendaGrid_RecurringReservationResponse on RecurringReservationResponse {\n instances {\n ...AgendaGrid_RecurringReservationInstance\n __typename\n }\n recurringReservation {\n ...AgendaGrid_RecurringReservation\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_RecurringReservationInstance on RecurringReservationInstance {\n start\n end\n color\n note\n __typename\n}\n\nfragment AgendaGrid_RecurringReservation on RecurringReservation {\n id\n note\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n color\n __typename\n}\n\nfragment AgendaGrid_Calendar on Calendar {\n id\n name\n internalName\n __typename\n}\n\nfragment AgendaGrid_Reservation on Reservation {\n id\n start\n end\n color\n done\n note\n canceledAt\n request {\n ...AgendaGrid_PatientRequest\n __typename\n }\n remindDaysBefore\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n additionalCalendars {\n ...AgendaGrid_Calendar\n __typename\n }\n videoCallDoctorUrl\n done\n __typename\n}\n\nfragment AgendaGrid_PatientRequest on PatientRequest {\n id\n displayTitle(locale: $locale)\n tags(onlyImportant: true) {\n ...Tag\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n icon {\n id\n color\n urlSvg\n __typename\n }\n name\n __typename\n }\n extendedPatient {\n ...AgendaGrid_Patient\n __typename\n }\n eventType\n flags\n clinicNotes {\n ...AgendaGrid_ClinicNote\n __typename\n }\n invoice {\n id\n amount\n currency\n status\n __typename\n }\n clinicMedicalRecord\n __typename\n}\n\nfragment AgendaGrid_ClinicNote on ClinicPatientRequestNote {\n id\n content\n __typename\n}\n\nfragment Tag on Tag {\n id\n name\n color\n icon\n __typename\n}\n\nfragment AgendaGrid_Patient on ExtendedPatient {\n id\n kind\n name\n surname\n owner {\n name\n surname\n __typename\n }\n key\n tags(onlyImportant: true) {\n ...Tag\n __typename\n }\n type\n isUnknownPatient\n user {\n id\n name\n surname\n __typename\n }\n identificationNumber\n insuranceCompanyObject {\n id\n shortName\n __typename\n }\n dob\n __typename\n}\n\nfragment AgendaGrid_Vacation on ClinicVacation {\n id\n since\n until\n calendarId\n calendars {\n ...AgendaGrid_Calendar\n __typename\n }\n __typename\n}"} +{"operationName": "ClinicAgenda_ListClinicReservations", "variables": {"clinicCountry": "CZ", "calendarIds": ["144c4e12-347c-49ca-9ec0-8ca965a4470d"], "clinicSlug": "mudr-buzalkova", "emptyCalendarIds": false, "since": "2025-10-16T22:00:00.000Z", "until": "2025-10-17T21:59:59.999Z", "locale": "cs", "skipCalendarWindows": true}, "query": "query ClinicAgenda_ListClinicReservations($calendarIds: [UUID!], $clinicSlug: String!, $locale: Locale!, $since: DateTime!, $until: DateTime!, $emptyCalendarIds: Boolean!, $skipCalendarWindows: Boolean!, $clinicCountry: Country = CZ) {\n calendarWindows: getCalendarWindows(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n pageInfo: {first: 10000, offset: 0}\n ) @skip(if: $skipCalendarWindows) {\n ...ClinicAgenda_CalendarSlotWindow\n __typename\n }\n holidays: getHolidays(since: $since, until: $until, countries: [$clinicCountry]) {\n ...AgendaGrid_Holiday\n __typename\n }\n recurringReservations: listClinicRecurringReservations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_RecurringReservationResponse\n __typename\n }\n reservations: listClinicReservations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_Reservation\n __typename\n }\n vacations: findVacations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_Vacation\n __typename\n }\n}\n\nfragment ClinicAgenda_CalendarSlotWindow on CalendarSlotWindow {\n ...AgendaGrid_CalendarSlotWindow\n ...CalendarSlotWindowToResolveReservationLength\n __typename\n}\n\nfragment CalendarSlotWindowToResolveReservationLength on CalendarSlotWindow {\n supportedUserEcrfs(locale: $locale) {\n id\n reservationLength\n __typename\n }\n windowUserECRFs {\n id\n clinicPatientRequestSettingsId\n reservationLength\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_CalendarSlotWindow on CalendarSlotWindow {\n id\n start\n end\n validFrom\n validTill\n dayOfWeek\n weekParity\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_Holiday on Holiday {\n endAt\n name\n startAt\n __typename\n}\n\nfragment AgendaGrid_RecurringReservationResponse on RecurringReservationResponse {\n instances {\n ...AgendaGrid_RecurringReservationInstance\n __typename\n }\n recurringReservation {\n ...AgendaGrid_RecurringReservation\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_RecurringReservationInstance on RecurringReservationInstance {\n start\n end\n color\n note\n __typename\n}\n\nfragment AgendaGrid_RecurringReservation on RecurringReservation {\n id\n note\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n color\n __typename\n}\n\nfragment AgendaGrid_Calendar on Calendar {\n id\n name\n internalName\n __typename\n}\n\nfragment AgendaGrid_Reservation on Reservation {\n id\n start\n end\n color\n done\n note\n canceledAt\n request {\n ...AgendaGrid_PatientRequest\n __typename\n }\n remindDaysBefore\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n additionalCalendars {\n ...AgendaGrid_Calendar\n __typename\n }\n videoCallDoctorUrl\n done\n __typename\n}\n\nfragment AgendaGrid_PatientRequest on PatientRequest {\n id\n displayTitle(locale: $locale)\n tags(onlyImportant: true) {\n ...Tag\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n icon {\n id\n color\n urlSvg\n __typename\n }\n name\n __typename\n }\n extendedPatient {\n ...AgendaGrid_Patient\n __typename\n }\n eventType\n flags\n clinicNotes {\n ...AgendaGrid_ClinicNote\n __typename\n }\n invoice {\n id\n amount\n currency\n status\n __typename\n }\n clinicMedicalRecord\n __typename\n}\n\nfragment AgendaGrid_ClinicNote on ClinicPatientRequestNote {\n id\n content\n __typename\n}\n\nfragment Tag on Tag {\n id\n name\n color\n icon\n __typename\n}\n\nfragment AgendaGrid_Patient on ExtendedPatient {\n id\n kind\n name\n surname\n owner {\n name\n surname\n __typename\n }\n key\n tags(onlyImportant: true) {\n ...Tag\n __typename\n }\n type\n isUnknownPatient\n user {\n id\n name\n surname\n __typename\n }\n identificationNumber\n insuranceCompanyObject {\n id\n shortName\n __typename\n }\n dob\n __typename\n}\n\nfragment AgendaGrid_Vacation on ClinicVacation {\n id\n since\n until\n calendarId\n calendars {\n ...AgendaGrid_Calendar\n __typename\n }\n __typename\n}"} +{"operationName": "UpdateReservation_GetReservation", "variables": {"clinicSlug": "mudr-buzalkova", "includeReservation": true, "recurringReservationId": "00000000-0000-0000-0000-000000000000", "reservationId": "473f0072-fa88-4ce5-a160-e7abf030aff7", "since": "1970-01-01T00:00:00.000Z"}, "query": "query UpdateReservation_GetReservation($clinicSlug: String!, $includeReservation: Boolean!, $recurringReservationId: UUID!, $reservationId: UUID!, $since: DateTime!) {\n recurringReservation: getRecurringReservationResponse(\n clinicSlug: $clinicSlug\n id: $recurringReservationId\n since: $since\n until: $since\n ) @skip(if: $includeReservation) {\n ...UpdateReservationForm_RecurringReservation\n __typename\n }\n reservation: getReservation(\n clinicSlug: $clinicSlug\n reservationId: $reservationId\n ) @include(if: $includeReservation) {\n ...UpdateReservationForm_Reservation\n __typename\n }\n calendars: getCalendarsForClinic(clinicSlug: $clinicSlug) {\n ...CalendarSelect_Calendar\n __typename\n }\n}\n\nfragment UpdateReservationForm_RecurringReservation on RecurringReservationResponse {\n recurringReservation {\n calendarId\n duration\n id\n rrule {\n ...UpdateReservationForm_RecurringReservationSettings\n __typename\n }\n note\n color\n __typename\n }\n instances {\n start\n end\n note\n color\n __typename\n }\n __typename\n}\n\nfragment UpdateReservationForm_RecurringReservationSettings on RecurringReservationSettings {\n byhour\n byminute\n bymonth\n bymonthday\n bynmonthday\n bynweekday\n bysetpos\n byweekday\n byweekno\n byyearday\n count\n dtstart\n frequency\n interval\n tzid\n until\n wkst\n __typename\n}\n\nfragment UpdateReservationForm_Reservation on Reservation {\n calendarId\n color\n id\n note\n end\n start\n __typename\n}\n\nfragment CalendarSelect_Calendar on Calendar {\n id\n name\n __typename\n}"} +{"operationName": "ClinicRequestDetail_GetPatientRequest2", "variables": {"clinicSlug": "mudr-buzalkova", "isDoctor": true, "requestId": "f2724013-2e25-4558-906b-56b41f346588", "locale": "cs"}, "query": "query ClinicRequestDetail_GetPatientRequest2($requestId: UUID!, $clinicSlug: String!, $isDoctor: Boolean!, $locale: Locale!) {\n patientRequestMedicalRecords: listMedicalRecordsForPatientRequest(\n attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT]\n patientRequestId: $requestId\n pageInfo: {first: 100, offset: 0}\n ) {\n ...ClinicRequestDetail_PatientRequestMedicalRecord\n __typename\n }\n request: getPatientRequest2(\n patientRequestId: $requestId\n clinicSlug: $clinicSlug\n ) {\n id\n ...ClinicRequestDetail_Request\n createdBy {\n id\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n sid\n __typename\n }\n eventType\n hasMobileApp\n extendedPatient(clinicSlug: $clinicSlug) {\n ...ClinicRequestDetail_Patient\n ...ClinicPatientInfo_Patient\n __typename\n }\n __typename\n }\n}\n\nfragment ClinicRequestDetail_Patient on ExtendedPatient {\n id\n user {\n id\n phone\n __typename\n }\n phone\n editableByDoctor\n name\n surname\n type\n isUnknownPatient\n __typename\n}\n\nfragment ClinicRequestDetail_Request on PatientRequest {\n id\n doneAt\n doneBy {\n id\n name\n surname\n __typename\n }\n removedAt\n queue {\n id\n __typename\n }\n isInClinic\n clinic {\n id\n paymentEnabled\n hasInvoicingEnabled\n slug\n features\n __typename\n }\n clinicMedicalRecord\n clinicMedicalRecordVisibleToPatient\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n kind\n identificationNumber\n name\n key\n type\n user {\n id\n name\n surname\n __typename\n }\n surname\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n sid\n name\n flags {\n isReference\n __typename\n }\n __typename\n }\n ecrfFilledData(locale: $locale) {\n ...EcrfFilledSteps_EcrfFilledStep\n __typename\n }\n eventType\n flags\n invoice {\n ...InvoiceStatusBar_Invoice\n __typename\n }\n userNote\n paymentData {\n ...InvoicePaymentStatusBar_PaymentSummaryData\n __typename\n }\n recording {\n ...ClinicRequestContent_Recording\n __typename\n }\n reservations {\n ...Reservations_Reservation\n ...VideoCall_Reservation\n __typename\n }\n evaluationResult(locale: $locale) {\n ...ClinicRequest_ECRFEvaluationResult\n __typename\n }\n tags(onlyImportant: false) {\n id\n ...Tag\n __typename\n }\n ...ClinicRequestHeading_Request\n ...ClinicRequestControls_Request\n ...InvoiceStatusBar_PatientRequest\n ...InvoicePriceBar_Request\n __typename\n}\n\nfragment ClinicRequestContent_Recording on Recording {\n fileUrl\n type\n __typename\n}\n\nfragment ClinicRequestControls_Request on PatientRequest {\n ...ClinicRequestControlsBar_Request\n isInClinic\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n identificationNumber\n kind\n name\n owner {\n name\n surname\n __typename\n }\n key\n type\n user {\n id\n name\n surname\n __typename\n }\n status\n surname\n isUnknownPatient\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestControlsBar_Request on PatientRequest {\n id\n dueDate\n doneAt\n doneBy {\n name\n surname\n __typename\n }\n queue {\n id\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledStep on ECRFFilledStep {\n name\n groups {\n ...EcrfFilledSteps_EcrfFilledGroup\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledGroup on ECRFFilledGroup {\n label\n name\n fields {\n ...EcrfFilledSteps_EcrfFilledField\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledField on ECRFFilledField {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_EcrfFilledEnumeration\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledEnumeration on ECRFFilledEnumeration {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_ShallowECRFFilledField on ECRFFilledField {\n name\n label\n type\n value\n __typename\n}\n\nfragment EcrfFilledSteps_ShallowEcrfFilledEnumeration on ECRFFilledEnumeration {\n name\n label\n checked\n __typename\n}\n\nfragment ClinicRequest_ECRFEvaluationResult on ECRFEvaluationResult {\n contentForDoctor\n fields {\n name\n label\n type\n value\n min\n max\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestHeading_Request on PatientRequest {\n clinic {\n id\n name\n slug\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n __typename\n }\n isInClinic\n createdAt\n createdBy {\n id\n name\n surname\n __typename\n }\n customTitle\n createdByDoctor\n displayTitle(locale: $locale)\n ecrf: userECRF(locale: $locale) {\n id\n name\n ecrfSet {\n id\n name\n __typename\n }\n __typename\n }\n eventType\n flags\n id\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n name\n key\n surname\n __typename\n }\n referringClinic {\n id\n name\n __typename\n }\n __typename\n}\n\nfragment Reservations_Reservation on Reservation {\n calendar {\n ...Reservations_Calendar\n __typename\n }\n additionalCalendars {\n ...Reservations_Calendar\n __typename\n }\n calendarId\n canceledAt\n canceledBy {\n id\n clinicId\n name\n surname\n __typename\n }\n createdAt\n createdBy {\n id\n clinicId\n name\n surname\n __typename\n }\n clinic {\n id\n slug\n __typename\n }\n done\n end\n id\n note\n start\n videoCallDoctorUrl\n additionalCalendars {\n id\n __typename\n }\n __typename\n}\n\nfragment Reservations_Calendar on Calendar {\n id\n internalName\n name\n __typename\n}\n\nfragment InvoiceStatusBar_Invoice on Invoice {\n amount\n currency\n dueAmount\n id\n isOverdue\n link\n payments {\n ...InvoiceStatusBar_Payment\n __typename\n }\n refundedAmount\n status\n settledAmount\n isOnlinePayable\n __typename\n}\n\nfragment InvoiceStatusBar_Payment on Payment {\n id\n status\n __typename\n}\n\nfragment InvoiceStatusBar_PatientRequest on PatientRequest {\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n user {\n id\n phone\n __typename\n }\n key\n phone\n __typename\n }\n hasMobileApp\n paymentData {\n status\n __typename\n }\n id\n priceWhenCreated\n currencyWhenCreated\n __typename\n}\n\nfragment VideoCall_Reservation on Reservation {\n canceledAt\n end\n id\n showVideoCall\n start\n videoCallDoctorUrl\n __typename\n}\n\nfragment Tag on Tag {\n id\n name\n color\n icon\n __typename\n}\n\nfragment InvoicePaymentStatusBar_PaymentSummaryData on PaymentSummaryData {\n status\n amount\n currency\n __typename\n}\n\nfragment InvoicePriceBar_Request on PatientRequest {\n priceWhenCreated\n currencyWhenCreated\n __typename\n}\n\nfragment ClinicPatientInfo_Patient on ExtendedPatient {\n anamnesisShared\n anamnesisStatusForClinic {\n updatedAt\n __typename\n }\n clinics {\n ...ClinicsTinyList_Clinic\n __typename\n }\n id\n isInClinic\n dob\n city\n familyMembers: family {\n ...FamilyMemberList_FamilyMember\n __typename\n }\n houseNumber\n identificationNumber\n insuranceCompanyObject {\n id\n code\n name\n shortName\n __typename\n }\n kind\n name\n note\n owner {\n ...PatientInfo_ContactPatientOwner\n __typename\n }\n key\n status\n street\n surname\n user {\n ...PatientInfo_ContactPatientUser\n __typename\n }\n userRelationship\n premiumPlanPatient {\n id\n ...PremiumPlanTag_PremiumPlanPatient\n __typename\n }\n sex\n tags(onlyImportant: false) {\n ...Tag\n __typename\n }\n type\n isUnknownPatient\n hasMobileApp\n ...MergeSuggestionAlert_ExtendedPatient\n ...PatientInfo_ContactPatient\n __typename\n}\n\nfragment ClinicsTinyList_Clinic on Clinic {\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n id\n name\n slug\n __typename\n}\n\nfragment PatientInfo_ContactPatient on ExtendedPatient {\n id\n city\n email\n houseNumber\n key\n phone\n street\n __typename\n}\n\nfragment PatientInfo_ContactPatientOwner on PatientOwner {\n name\n surname\n __typename\n}\n\nfragment PatientInfo_ContactPatientUser on PatientUser {\n id\n email\n name\n phone\n surname\n __typename\n}\n\nfragment FamilyMemberList_FamilyMember on FamilyPatientUserUnion {\n ...FamilyMemberList_Patient\n ...FamilyMemberList_PatientUser\n __typename\n}\n\nfragment FamilyMemberList_Patient on ExtendedPatient {\n dob\n id\n identificationNumber\n isInClinic\n kind\n name\n key\n surname\n sex\n type\n isUnknownPatient\n __typename\n}\n\nfragment FamilyMemberList_PatientUser on PatientUser {\n name\n surname\n __typename\n}\n\nfragment MergeSuggestionAlert_ExtendedPatient on ExtendedPatient {\n id\n key\n isInClinic\n __typename\n}\n\nfragment PremiumPlanTag_PremiumPlanPatient on PremiumPlanPatient {\n id\n autorenew\n validTo\n premiumPlan {\n ...PremiumPlanTag_PremiumPlan\n __typename\n }\n __typename\n}\n\nfragment PremiumPlanTag_PremiumPlan on PremiumPlan {\n id\n name\n color\n __typename\n}\n\nfragment ClinicRequestDetail_PatientRequestMedicalRecord on PatientRequestMedicalRecord {\n attachmentType\n id\n medicalRecord {\n ...FileItem_MedicalRecord\n __typename\n }\n __typename\n}\n\nfragment FileItem_MedicalRecord on MedicalRecord {\n contentType\n description\n downloadUrl\n id\n url\n visibleToPatient @include(if: $isDoctor)\n __typename\n}"} +{"operationName": "ClinicRequestDetailModalContent", "variables": {"clinicSlug": "mudr-buzalkova", "patientUuid": "e0640ebb-7542-4fe9-b899-9025d15979bc", "locale": "cs"}, "query": "query ClinicRequestDetailModalContent($clinicSlug: String!, $patientUuid: UUID!, $locale: Locale!) {\n clinic: getClinic(clinicSlug: $clinicSlug) {\n features\n id\n type\n ais\n ...ClinicRequestControls_Clinic\n ...PatientInfo_Clinic\n __typename\n }\n calendars: getCalendarsForClinic(clinicSlug: $clinicSlug) {\n ...ClinicRequestDetailModalContent_Calendar\n __typename\n }\n mergeSuggestions: findMergeSuggestions(\n clinicSlug: $clinicSlug\n input: {existingPatientId: $patientUuid}\n ) {\n ...MergeSuggestionAlert_MergeSuggestionResult\n __typename\n }\n queues: listQueues(clinicSlug: $clinicSlug) {\n ...ClinicRequestControlsBar_Queue\n __typename\n }\n patientRequestsResponse: filterPatientRequestsForClinic(\n clinicSlug: $clinicSlug\n filter: {patientId: $patientUuid}\n pageInfo: {first: 4, offset: 0}\n ) {\n count\n items {\n ...ClinicRequestDetail_RequestList_PatientRequest\n __typename\n }\n __typename\n }\n premiumPlans: listClinicPremiumPlans(clinicSlug: $clinicSlug) {\n id\n __typename\n }\n insuranceCards: getPatientDocuments(\n patientId: $patientUuid\n type: InsuranceCard\n ) {\n ...PatientInfo_InsuranceCard\n __typename\n }\n}\n\nfragment ClinicRequestDetailModalContent_Calendar on Calendar {\n id\n __typename\n}\n\nfragment ClinicRequestControlsBar_Queue on ClinicPatientRequestQueue {\n id\n name\n mine\n clinicPatientRequestQueueUsers {\n accountable {\n id\n name\n surname\n __typename\n }\n id\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestControls_Clinic on Clinic {\n id\n slug\n canSendToEzprava\n __typename\n}\n\nfragment MergeSuggestionAlert_MergeSuggestionResult on MergeSuggestionResult {\n extendedPatient {\n ...MergeSuggestionAlert_ExtendedPatient\n __typename\n }\n matchResult\n __typename\n}\n\nfragment MergeSuggestionAlert_ExtendedPatient on ExtendedPatient {\n id\n key\n isInClinic\n __typename\n}\n\nfragment ClinicRequestDetail_RequestList_PatientRequest on PatientRequest {\n id\n createdAt\n displayTitle(locale: $locale)\n doneAt\n reservations {\n id\n canceledAt\n calendar {\n id\n name\n internalName\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment PatientInfo_Clinic on Clinic {\n id\n slug\n ais\n ...ClinicWithTypeAndFeatures_Clinic\n __typename\n}\n\nfragment ClinicWithTypeAndFeatures_Clinic on Clinic {\n id\n type\n features\n __typename\n}\n\nfragment PatientInfo_InsuranceCard on PatientDocument {\n id\n contentType\n url\n downloadUrl\n __typename\n}"} +{"operationName": "ClinicRequestNotes_Get", "variables": {"patientRequestId": "f2724013-2e25-4558-906b-56b41f346588"}, "query": "query ClinicRequestNotes_Get($patientRequestId: String!) {\n notes: getClinicPatientRequestNotes(requestId: $patientRequestId) {\n ...NotesList_ClinicPatientRequestNote\n __typename\n }\n}\n\nfragment NotesList_ClinicPatientRequestNote on ClinicPatientRequestNote {\n id\n content\n createdAt\n updatedAt\n createdBy {\n id\n name\n surname\n __typename\n }\n __typename\n}"} +{"operationName": "UseMessages_ListMessages", "variables": {"requestId": "f2724013-2e25-4558-906b-56b41f346588", "updatedSince": null}, "query": "query UseMessages_ListMessages($requestId: String!, $updatedSince: DateTime) {\n messages: listMessages(\n patientRequestId: $requestId\n updatedSince: $updatedSince\n ) {\n ...UseMessages_Message\n __typename\n }\n}\n\nfragment UseMessages_Message on Message {\n createdAt\n id\n medicalRecord {\n ...UseMessages_MedicalRecord\n __typename\n }\n readAt\n sender {\n clinicId\n id\n name\n surname\n __typename\n }\n text\n type\n updatedAt\n __typename\n}\n\nfragment UseMessages_MedicalRecord on MedicalRecord {\n contentType\n createdAt\n description\n downloadUrl\n id\n token\n updatedAt\n url\n __typename\n}"} +{"operationName": "Communication_GetClinicFooter", "variables": {"clinicSlug": "mudr-buzalkova"}, "query": "query Communication_GetClinicFooter($clinicSlug: String!) {\n footer: getClinicFooter(clinicSlug: $clinicSlug)\n}"} +{"operationName": "ClinicRequestDetail_GetPatientRequest2", "variables": {"clinicSlug": "mudr-buzalkova", "isDoctor": true, "requestId": "61c90032-255e-4c94-a4b5-00a48f717fe5", "locale": "cs"}, "query": "query ClinicRequestDetail_GetPatientRequest2($requestId: UUID!, $clinicSlug: String!, $isDoctor: Boolean!, $locale: Locale!) {\n patientRequestMedicalRecords: listMedicalRecordsForPatientRequest(\n attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT]\n patientRequestId: $requestId\n pageInfo: {first: 100, offset: 0}\n ) {\n ...ClinicRequestDetail_PatientRequestMedicalRecord\n __typename\n }\n request: getPatientRequest2(\n patientRequestId: $requestId\n clinicSlug: $clinicSlug\n ) {\n id\n ...ClinicRequestDetail_Request\n createdBy {\n id\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n sid\n __typename\n }\n eventType\n hasMobileApp\n extendedPatient(clinicSlug: $clinicSlug) {\n ...ClinicRequestDetail_Patient\n ...ClinicPatientInfo_Patient\n __typename\n }\n __typename\n }\n}\n\nfragment ClinicRequestDetail_Patient on ExtendedPatient {\n id\n user {\n id\n phone\n __typename\n }\n phone\n editableByDoctor\n name\n surname\n type\n isUnknownPatient\n __typename\n}\n\nfragment ClinicRequestDetail_Request on PatientRequest {\n id\n doneAt\n doneBy {\n id\n name\n surname\n __typename\n }\n removedAt\n queue {\n id\n __typename\n }\n isInClinic\n clinic {\n id\n paymentEnabled\n hasInvoicingEnabled\n slug\n features\n __typename\n }\n clinicMedicalRecord\n clinicMedicalRecordVisibleToPatient\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n kind\n identificationNumber\n name\n key\n type\n user {\n id\n name\n surname\n __typename\n }\n surname\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n sid\n name\n flags {\n isReference\n __typename\n }\n __typename\n }\n ecrfFilledData(locale: $locale) {\n ...EcrfFilledSteps_EcrfFilledStep\n __typename\n }\n eventType\n flags\n invoice {\n ...InvoiceStatusBar_Invoice\n __typename\n }\n userNote\n paymentData {\n ...InvoicePaymentStatusBar_PaymentSummaryData\n __typename\n }\n recording {\n ...ClinicRequestContent_Recording\n __typename\n }\n reservations {\n ...Reservations_Reservation\n ...VideoCall_Reservation\n __typename\n }\n evaluationResult(locale: $locale) {\n ...ClinicRequest_ECRFEvaluationResult\n __typename\n }\n tags(onlyImportant: false) {\n id\n ...Tag\n __typename\n }\n ...ClinicRequestHeading_Request\n ...ClinicRequestControls_Request\n ...InvoiceStatusBar_PatientRequest\n ...InvoicePriceBar_Request\n __typename\n}\n\nfragment ClinicRequestContent_Recording on Recording {\n fileUrl\n type\n __typename\n}\n\nfragment ClinicRequestControls_Request on PatientRequest {\n ...ClinicRequestControlsBar_Request\n isInClinic\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n identificationNumber\n kind\n name\n owner {\n name\n surname\n __typename\n }\n key\n type\n user {\n id\n name\n surname\n __typename\n }\n status\n surname\n isUnknownPatient\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestControlsBar_Request on PatientRequest {\n id\n dueDate\n doneAt\n doneBy {\n name\n surname\n __typename\n }\n queue {\n id\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledStep on ECRFFilledStep {\n name\n groups {\n ...EcrfFilledSteps_EcrfFilledGroup\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledGroup on ECRFFilledGroup {\n label\n name\n fields {\n ...EcrfFilledSteps_EcrfFilledField\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledField on ECRFFilledField {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_EcrfFilledEnumeration\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledEnumeration on ECRFFilledEnumeration {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_ShallowECRFFilledField on ECRFFilledField {\n name\n label\n type\n value\n __typename\n}\n\nfragment EcrfFilledSteps_ShallowEcrfFilledEnumeration on ECRFFilledEnumeration {\n name\n label\n checked\n __typename\n}\n\nfragment ClinicRequest_ECRFEvaluationResult on ECRFEvaluationResult {\n contentForDoctor\n fields {\n name\n label\n type\n value\n min\n max\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestHeading_Request on PatientRequest {\n clinic {\n id\n name\n slug\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n __typename\n }\n isInClinic\n createdAt\n createdBy {\n id\n name\n surname\n __typename\n }\n customTitle\n createdByDoctor\n displayTitle(locale: $locale)\n ecrf: userECRF(locale: $locale) {\n id\n name\n ecrfSet {\n id\n name\n __typename\n }\n __typename\n }\n eventType\n flags\n id\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n name\n key\n surname\n __typename\n }\n referringClinic {\n id\n name\n __typename\n }\n __typename\n}\n\nfragment Reservations_Reservation on Reservation {\n calendar {\n ...Reservations_Calendar\n __typename\n }\n additionalCalendars {\n ...Reservations_Calendar\n __typename\n }\n calendarId\n canceledAt\n canceledBy {\n id\n clinicId\n name\n surname\n __typename\n }\n createdAt\n createdBy {\n id\n clinicId\n name\n surname\n __typename\n }\n clinic {\n id\n slug\n __typename\n }\n done\n end\n id\n note\n start\n videoCallDoctorUrl\n additionalCalendars {\n id\n __typename\n }\n __typename\n}\n\nfragment Reservations_Calendar on Calendar {\n id\n internalName\n name\n __typename\n}\n\nfragment InvoiceStatusBar_Invoice on Invoice {\n amount\n currency\n dueAmount\n id\n isOverdue\n link\n payments {\n ...InvoiceStatusBar_Payment\n __typename\n }\n refundedAmount\n status\n settledAmount\n isOnlinePayable\n __typename\n}\n\nfragment InvoiceStatusBar_Payment on Payment {\n id\n status\n __typename\n}\n\nfragment InvoiceStatusBar_PatientRequest on PatientRequest {\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n user {\n id\n phone\n __typename\n }\n key\n phone\n __typename\n }\n hasMobileApp\n paymentData {\n status\n __typename\n }\n id\n priceWhenCreated\n currencyWhenCreated\n __typename\n}\n\nfragment VideoCall_Reservation on Reservation {\n canceledAt\n end\n id\n showVideoCall\n start\n videoCallDoctorUrl\n __typename\n}\n\nfragment Tag on Tag {\n id\n name\n color\n icon\n __typename\n}\n\nfragment InvoicePaymentStatusBar_PaymentSummaryData on PaymentSummaryData {\n status\n amount\n currency\n __typename\n}\n\nfragment InvoicePriceBar_Request on PatientRequest {\n priceWhenCreated\n currencyWhenCreated\n __typename\n}\n\nfragment ClinicPatientInfo_Patient on ExtendedPatient {\n anamnesisShared\n anamnesisStatusForClinic {\n updatedAt\n __typename\n }\n clinics {\n ...ClinicsTinyList_Clinic\n __typename\n }\n id\n isInClinic\n dob\n city\n familyMembers: family {\n ...FamilyMemberList_FamilyMember\n __typename\n }\n houseNumber\n identificationNumber\n insuranceCompanyObject {\n id\n code\n name\n shortName\n __typename\n }\n kind\n name\n note\n owner {\n ...PatientInfo_ContactPatientOwner\n __typename\n }\n key\n status\n street\n surname\n user {\n ...PatientInfo_ContactPatientUser\n __typename\n }\n userRelationship\n premiumPlanPatient {\n id\n ...PremiumPlanTag_PremiumPlanPatient\n __typename\n }\n sex\n tags(onlyImportant: false) {\n ...Tag\n __typename\n }\n type\n isUnknownPatient\n hasMobileApp\n ...MergeSuggestionAlert_ExtendedPatient\n ...PatientInfo_ContactPatient\n __typename\n}\n\nfragment ClinicsTinyList_Clinic on Clinic {\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n id\n name\n slug\n __typename\n}\n\nfragment PatientInfo_ContactPatient on ExtendedPatient {\n id\n city\n email\n houseNumber\n key\n phone\n street\n __typename\n}\n\nfragment PatientInfo_ContactPatientOwner on PatientOwner {\n name\n surname\n __typename\n}\n\nfragment PatientInfo_ContactPatientUser on PatientUser {\n id\n email\n name\n phone\n surname\n __typename\n}\n\nfragment FamilyMemberList_FamilyMember on FamilyPatientUserUnion {\n ...FamilyMemberList_Patient\n ...FamilyMemberList_PatientUser\n __typename\n}\n\nfragment FamilyMemberList_Patient on ExtendedPatient {\n dob\n id\n identificationNumber\n isInClinic\n kind\n name\n key\n surname\n sex\n type\n isUnknownPatient\n __typename\n}\n\nfragment FamilyMemberList_PatientUser on PatientUser {\n name\n surname\n __typename\n}\n\nfragment MergeSuggestionAlert_ExtendedPatient on ExtendedPatient {\n id\n key\n isInClinic\n __typename\n}\n\nfragment PremiumPlanTag_PremiumPlanPatient on PremiumPlanPatient {\n id\n autorenew\n validTo\n premiumPlan {\n ...PremiumPlanTag_PremiumPlan\n __typename\n }\n __typename\n}\n\nfragment PremiumPlanTag_PremiumPlan on PremiumPlan {\n id\n name\n color\n __typename\n}\n\nfragment ClinicRequestDetail_PatientRequestMedicalRecord on PatientRequestMedicalRecord {\n attachmentType\n id\n medicalRecord {\n ...FileItem_MedicalRecord\n __typename\n }\n __typename\n}\n\nfragment FileItem_MedicalRecord on MedicalRecord {\n contentType\n description\n downloadUrl\n id\n url\n visibleToPatient @include(if: $isDoctor)\n __typename\n}"} +{"operationName": "ClinicRequestDetailModalContent", "variables": {"clinicSlug": "mudr-buzalkova", "patientUuid": "7f492f8d-af27-4a08-ab2c-f72e46c5509c", "locale": "cs"}, "query": "query ClinicRequestDetailModalContent($clinicSlug: String!, $patientUuid: UUID!, $locale: Locale!) {\n clinic: getClinic(clinicSlug: $clinicSlug) {\n features\n id\n type\n ais\n ...ClinicRequestControls_Clinic\n ...PatientInfo_Clinic\n __typename\n }\n calendars: getCalendarsForClinic(clinicSlug: $clinicSlug) {\n ...ClinicRequestDetailModalContent_Calendar\n __typename\n }\n mergeSuggestions: findMergeSuggestions(\n clinicSlug: $clinicSlug\n input: {existingPatientId: $patientUuid}\n ) {\n ...MergeSuggestionAlert_MergeSuggestionResult\n __typename\n }\n queues: listQueues(clinicSlug: $clinicSlug) {\n ...ClinicRequestControlsBar_Queue\n __typename\n }\n patientRequestsResponse: filterPatientRequestsForClinic(\n clinicSlug: $clinicSlug\n filter: {patientId: $patientUuid}\n pageInfo: {first: 4, offset: 0}\n ) {\n count\n items {\n ...ClinicRequestDetail_RequestList_PatientRequest\n __typename\n }\n __typename\n }\n premiumPlans: listClinicPremiumPlans(clinicSlug: $clinicSlug) {\n id\n __typename\n }\n insuranceCards: getPatientDocuments(\n patientId: $patientUuid\n type: InsuranceCard\n ) {\n ...PatientInfo_InsuranceCard\n __typename\n }\n}\n\nfragment ClinicRequestDetailModalContent_Calendar on Calendar {\n id\n __typename\n}\n\nfragment ClinicRequestControlsBar_Queue on ClinicPatientRequestQueue {\n id\n name\n mine\n clinicPatientRequestQueueUsers {\n accountable {\n id\n name\n surname\n __typename\n }\n id\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestControls_Clinic on Clinic {\n id\n slug\n canSendToEzprava\n __typename\n}\n\nfragment MergeSuggestionAlert_MergeSuggestionResult on MergeSuggestionResult {\n extendedPatient {\n ...MergeSuggestionAlert_ExtendedPatient\n __typename\n }\n matchResult\n __typename\n}\n\nfragment MergeSuggestionAlert_ExtendedPatient on ExtendedPatient {\n id\n key\n isInClinic\n __typename\n}\n\nfragment ClinicRequestDetail_RequestList_PatientRequest on PatientRequest {\n id\n createdAt\n displayTitle(locale: $locale)\n doneAt\n reservations {\n id\n canceledAt\n calendar {\n id\n name\n internalName\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment PatientInfo_Clinic on Clinic {\n id\n slug\n ais\n ...ClinicWithTypeAndFeatures_Clinic\n __typename\n}\n\nfragment ClinicWithTypeAndFeatures_Clinic on Clinic {\n id\n type\n features\n __typename\n}\n\nfragment PatientInfo_InsuranceCard on PatientDocument {\n id\n contentType\n url\n downloadUrl\n __typename\n}"} +{"operationName": "ClinicRequestNotes_Get", "variables": {"patientRequestId": "61c90032-255e-4c94-a4b5-00a48f717fe5"}, "query": "query ClinicRequestNotes_Get($patientRequestId: String!) {\n notes: getClinicPatientRequestNotes(requestId: $patientRequestId) {\n ...NotesList_ClinicPatientRequestNote\n __typename\n }\n}\n\nfragment NotesList_ClinicPatientRequestNote on ClinicPatientRequestNote {\n id\n content\n createdAt\n updatedAt\n createdBy {\n id\n name\n surname\n __typename\n }\n __typename\n}"} +{"operationName": "UseMessages_ListMessages", "variables": {"requestId": "61c90032-255e-4c94-a4b5-00a48f717fe5", "updatedSince": null}, "query": "query UseMessages_ListMessages($requestId: String!, $updatedSince: DateTime) {\n messages: listMessages(\n patientRequestId: $requestId\n updatedSince: $updatedSince\n ) {\n ...UseMessages_Message\n __typename\n }\n}\n\nfragment UseMessages_Message on Message {\n createdAt\n id\n medicalRecord {\n ...UseMessages_MedicalRecord\n __typename\n }\n readAt\n sender {\n clinicId\n id\n name\n surname\n __typename\n }\n text\n type\n updatedAt\n __typename\n}\n\nfragment UseMessages_MedicalRecord on MedicalRecord {\n contentType\n createdAt\n description\n downloadUrl\n id\n token\n updatedAt\n url\n __typename\n}"} +{"operationName": "Communication_GetClinicFooter", "variables": {"clinicSlug": "mudr-buzalkova"}, "query": "query Communication_GetClinicFooter($clinicSlug: String!) {\n footer: getClinicFooter(clinicSlug: $clinicSlug)\n}"} diff --git a/medevio_api_notes.md b/medevio_api_notes.md new file mode 100644 index 0000000..42fa5d6 --- /dev/null +++ b/medevio_api_notes.md @@ -0,0 +1,135 @@ +# 🧭 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: + +```python +state = json.load(open("medevio_storage.json")) +cookies = {c["name"]: c["value"] for c in state["cookies"] if "medevio" in c["domain"]} +``` + +Use these cookies in every `requests.post(GRAPHQL_URL, headers, cookies, data=...)` call. + +--- + +## Key GraphQL Operations + +| Operation name | Purpose | +|----------------|----------| +| `AccessToken_AuthSelf` | Verify or refresh session | +| `ClinicNavigation_GetClinic` | Get basic clinic info | +| `ClinicAgenda_GetCalendarsForClinic` | List calendars within clinic | +| **`ClinicAgenda_ListClinicReservations`** | **List reservations (appointments)** | +| **`UpdateReservation_GetReservation`** | **Get full detail of one reservation** | +| **`ClinicRequestDetail_GetPatientRequest2`** | **Fetch detailed ā€œPožadavekā€ (request card)** | +| `ClinicRequestNotes_Get` | Load Požadavek notes | +| `UseMessages_ListMessages` | Load chat messages | +| `Communication_GetClinicFooter` | UI footer text | + +--- + +## Workflow for Automation + +### 1ļøāƒ£ Extract reservations (agenda overview) +```graphql +operationName: "ClinicAgenda_ListClinicReservations" +variables: { + "clinicId": "", + "dateFrom": "YYYY-MM-DDT00:00:00Z", + "dateTo": "YYYY-MM-DDT23:59:59Z" +} +``` +→ returns `id`, `startDateTime`, `endDateTime`, `patient {name, age}`, `reason`, `status`. + +### 2ļøāƒ£ Get detail of a single reservation +```graphql +operationName: "UpdateReservation_GetReservation" +variables: {"id": ""} +``` +→ returns reason, time, doctor, patient contact, note, etc. + +### 3ļøāƒ£ Get detail of Požadavek +```graphql +operationName: "ClinicRequestDetail_GetPatientRequest2" +variables: {"id": ""} +``` +→ returns text, attachments, communication, etc. + +--- + +## HTTP Setup (Python) + +```python +GRAPHQL_URL = "https://api.medevio.cz/graphql" +headers = { + "content-type": "application/json", + "origin": "https://my.medevio.cz", + "referer": "https://my.medevio.cz/", +} +response = requests.post(GRAPHQL_URL, headers=headers, cookies=cookies, data=json.dumps(payload)) +``` + +--- + +## Reservation Data Example + +```json +{ + "id": "0e3a4f5c-1c15-40e6-b1b1-325de9269ef5", + "reason": "OčkovĆ”nĆ­ - Chřipka", + "startDateTime": "2025-10-17T09:10:00Z", + "endDateTime": "2025-10-17T09:20:00Z", + "status": "confirmed", + "note": "přijde i s taÅ„kou", + "patient": {"id": "...", "name": "ČernĆ­k Pavel", "age": 53}, + "doctor": {"id": "...", "name": "MUDr. BuzalkovĆ”"}, + "location": {"name": "Ordinace Prosek"} +} +``` + +--- + +## 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']` | + +--- + +## Recommended Automation Pipeline + +1. **Agenda scrape (Playwright)** → extract `data-id`, patient, time, reason. +2. **GraphQL fetch (Python)** → use `ClinicAgenda_ListClinicReservations`. +3. **Detail enrichment** → call `UpdateReservation_GetReservation` and `ClinicRequestDetail_GetPatientRequest2`. +4. **Storage/reporting** → save to MySQL/Excel for vaccine planning. + +--- + +## 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 `ClinicAgenda_ListClinicReservations` + - `get_reservation_detail(reservation_id)` +- Map vaccine keywords (`OčkovĆ”nĆ­ – Chřipka`, `COVID`, `Hepatitida`, …). +- Export to Excel/MySQL for vaccine order planning. diff --git a/medevio_api_notes.txt b/medevio_api_notes.txt new file mode 100644 index 0000000..e8abd7c --- /dev/null +++ b/medevio_api_notes.txt @@ -0,0 +1,113 @@ +MEDEVIO API – WORKING NOTES +============================ + +GENERAL ARCHITECTURE +-------------------- +Frontend: React + Material-UI (MUI) + Apollo GraphQL +Backend: GraphQL API at https://api.medevio.cz/graphql +Authentication: via cookies / tokens stored in medevio_storage.json (Playwright session file) +Frontend base: https://my.medevio.cz/mudr-buzalkova/klinika/... +Session handling: token refreshed through AccessToken_AuthSelf calls + +AUTHENTICATION AND SESSION +-------------------------- +Reuse session cookies from medevio_storage.json. + +Example: + state = json.load(open("medevio_storage.json")) + cookies = {c["name"]: c["value"] for c in state["cookies"] if "medevio" in c["domain"]} + +Use these cookies in all requests.post(GRAPHQL_URL, headers, cookies, data=...) calls. + +KEY API ENDPOINTS (GraphQL OPERATIONS) +-------------------------------------- +Operation name Purpose +------------------------------------ ------------------------------------------ +AccessToken_AuthSelf Verify or refresh current user session +ClinicNavigation_GetClinic Get basic clinic info (name, ID) +ClinicAgenda_GetCalendarsForClinic List available calendars within your clinic +ClinicAgenda_ListClinicReservations List reservations (appointments) for date or range +UpdateReservation_GetReservation Get full detail of one reservation +ClinicRequestDetail_GetPatientRequest2 Fetch detailed ā€œPožadavekā€ (request card) +ClinicRequestNotes_Get Load notes/comments on Požadavek +UseMessages_ListMessages Load chat messages with patient +Communication_GetClinicFooter UI info only + +WORKFLOW FOR AUTOMATION +----------------------- +1. Extract reservations (agenda overview) + operationName: "ClinicAgenda_ListClinicReservations" + variables: {"clinicId": "", "dateFrom": "YYYY-MM-DDT00:00:00Z", "dateTo": "YYYY-MM-DDT23:59:59Z"} + + Returns: id, startDateTime, endDateTime, patient {name, age}, reason, status + +2. Get detail of a single reservation + operationName: "UpdateReservation_GetReservation" + variables: {"id": ""} + + Returns: reason, time, doctor, patient contact, note, etc. + +3. Get detail of Požadavek (request card) + operationName: "ClinicRequestDetail_GetPatientRequest2" + variables: {"id": ""} + + Returns: text of request, attachments, communication, etc. + +HTTP SETUP FOR ALL GRAPHQL CALLS +-------------------------------- +GRAPHQL_URL = "https://api.medevio.cz/graphql" +headers = { + "content-type": "application/json", + "origin": "https://my.medevio.cz", + "referer": "https://my.medevio.cz/", +} + +response = requests.post(GRAPHQL_URL, headers=headers, cookies=cookies, data=json.dumps(payload)) + +DATA STRUCTURE HINTS (Reservation) +---------------------------------- +{ + "id": "0e3a4f5c-1c15-40e6-b1b1-325de9269ef5", + "reason": "OčkovĆ”nĆ­ - Chřipka", + "startDateTime": "2025-10-17T09:10:00Z", + "endDateTime": "2025-10-17T09:20:00Z", + "status": "confirmed", + "note": "přijde i s taÅ„kou", + "patient": {"id": "...", "name": "ČernĆ­k Pavel", "age": 53}, + "doctor": {"id": "...", "name": "MUDr. BuzalkovĆ”"}, + "location": {"name": "Ordinace Prosek"} +} + +PLAYWRIGHT SELECTORS (REFERENCE) +-------------------------------- +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'] + +RECOMMENDED AUTOMATION PIPELINE +-------------------------------- +1. Step 1 – Agenda scrape (Playwright) + Open agenda-dne → extract data-id, patient, time, reason. +2. Step 2 – GraphQL fetch (Python requests) + Use ClinicAgenda_ListClinicReservations to get full dataset. +3. Step 3 – Detail enrichment + For each appointment → call UpdateReservation_GetReservation. + For linked Požadavek → call ClinicRequestDetail_GetPatientRequest2. +4. Step 4 – Storage / reporting + Save to MySQL or Excel for vaccine inventory, reminders, analytics. + +SECURITY / MAINTENANCE NOTES +---------------------------- +- GraphQL introspection is disabled. +- Session cookies expire periodically; refresh via Playwright login. +- Keep data secure (GDPR compliance). + +FUTURE TASKS +------------ +- Automate login refresh and cookie renewal. +- Build function get_reservations(date) using ClinicAgenda_ListClinicReservations. +- Build function get_reservation_detail(reservation_id). +- Map vaccine keywords (OčkovĆ”nĆ­ – Chřipka, COVID, Hepatitida, …). +- Export to Excel/MySQL for vaccine order planning. diff --git a/medevio_storage.json b/medevio_storage.json new file mode 100644 index 0000000..a0dc794 --- /dev/null +++ b/medevio_storage.json @@ -0,0 +1 @@ +{"cookies": [{"name": "gateway-access-token", "value": "YwBgkf8McREDKs7vCZj0EZD2fJsuV8RyDPtYx7WiDoz0nFJ9kxId8kcNEPBLFSwM+Tiz80+SOdFwo+oj", "domain": "my.medevio.cz", "path": "/", "expires": 1763372319, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "aws-waf-token", "value": "b6a1d4eb-4350-40e5-8e52-1f5f9600fbb8:CgoAr9pC8c6zAAAA:OYwXLY5OyitSQPl5v2oIlS+hIxsrb5LxV4VjCyE2gJCFFE5PQu+0Zbxse2ZIofrNv5QKs0TYUDTmxPhZyTr9Qtjnq2gsVQxWHXzrbebv3Z7RbzB63u6Ymn3Fo8IbDev3CfCNcNuxCKltFEXLqSCjI2vqNY+7HZkgQBIqy2wMgzli3aSLq0w8lWYtZzyyot7q8RPXWMGTfaBUo2reY0SOSffm9rAivE9PszNfPid71CvNrGAAoxRbwb25eVujlyIcDVWe5vZ9Iw==", "domain": ".my.medevio.cz", "path": "/", "expires": 1761125920, "httpOnly": false, "secure": true, "sameSite": "Lax"}], "origins": [{"origin": "https://my.medevio.cz", "localStorage": [{"name": "awswaf_token_refresh_timestamp", "value": "1760780309860"}, {"name": "awswaf_session_storage", "value": "b6a1d4eb-4350-40e5-8e52-1f5f9600fbb8:CgoAr9pC8c+zAAAA:+vw//1NzmePjPpbGCJzUB+orCRivtJd098DbDX4AnABiGRw/+ql6ShqvFY4YdCY7w2tegb5mEPBdAmc4sNi22kNR9BuEoAgCUiMhkU1AZWfzM51zPfTh7SveCrREZ7xdvxcqKPMmfVLRYX5E4+UWh22z/LKQ7+d9VERp3J+wWCUW3dFFirkezy3N7b2FVjTlY/RxsZwhejQziTG/L3CkIFFP3mOReNgBvDpj7aKoM1knY4IL4TZ8E7zNv3nTsvzACLYvnUutVOUcofN1TfOzwZshSKsEXsMzrQn8PzLccX1jM5VSzce7gfEzl0zSPsT8NB3Sna+rhMIttDNYgvbW1HsfG2LIeKMR27Zf8hkslDRVVkcU/Kp2jLOEdhhrBKGjKY2o9/uX3NExdzh5MEKQSSRtmue01BpWYILPH23rMsz4YSmF+Ough5OeQoC95rkcYwVXMhwvUN9Zfp9UZ4xCNfFUex5dOrg9aJntYRnaceeocGUttNI5AdT0i3+osV6XHXzKxeqO8zLCS9BIsCzxaHfdqqem5DorMceuGKz+QqksatIQAA=="}, {"name": "Application.Intl.locale", "value": "cs"}, {"name": "Password.prefill", "value": "{\"username\":\"vladimir.buzalka@buzalka.cz\",\"type\":\"email\"}"}]}]} \ No newline at end of file