Μετάβαση στο περιεχόμενο

Αναφορά MCP / Ιατρείο

Εργαλεία ιατρείου και προσωπικού

Εννέα εργαλεία για το προφίλ, τις ρυθμίσεις, τα μέλη, τις προσκλήσεις και τις αναφορές σφαλμάτων. Η δημιουργία πρόσκλησης στέλνει πραγματικό email, γι' αυτό σημειώνεται ως έξοδος προς τα έξω.

Πώς διαβάζεται

Κάθε εργαλείο παρακάτω παραθέτει τις παραμέτρους του ακριβώς όπως τις δηλώνει το σχήμα εισόδου: τον τύπο, αν είναι υποχρεωτική, τις επιτρεπτές τιμές όπου τις ορίζει το σχήμα, και τι σημαίνει η κάθε παράμετρος σύμφωνα με το σχήμα. Τίποτα από αυτά δεν γράφεται εδώ: ένα ποσό σε λεπτά, μια προεπιλογή που ισχύει αν παραλείψετε ένα πεδίο, ποια ενέργεια χρειάζεται ποιο id, όλα έρχονται από το ίδιο το εργαλείο.

Το practiceId δεν είναι ποτέ παράμετρος. Προέρχεται από το token σας, και οι διαδρομές εγγραφής το αφαιρούν αν το στείλει ο client.

Ένα εργαλείο που γράφει δείχνει ένα παράδειγμα για κάθε ενέργεια, γιατί αυτό που χρειάζεται μια ενέργεια δεν είναι ό,τι ορίζει υποχρεωτικό το σχήμα εισόδου: το σχήμα ζητά το action και τα υπόλοιπα τα αφήνει στην ενέργεια. Κάθε παράδειγμα είναι πλήρες αίτημα tools/call, και οι παράμετροί του ελέγχονται, όταν φτιάχνεται αυτή η σελίδα, με το ίδιο αντικείμενο που διαβάζει ο server. Τα σφάλματα επιστρέφονται μέσα σε απόκριση 200 με isError: δείτε την επισκόπηση MCP και τον πλήρη κατάλογο.

Ιατρείο και προσωπικό

Το προφίλ του ιατρείου, τα μέλη του και οι προσκλήσεις προσωπικού.

get_practice

Μόνο ανάγνωσηΚάθε μέλος

Ανάγνωση του προφίλ και των ρυθμίσεων του ιατρείου.

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_practice",
    "arguments": {}
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the requested records" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.

get_me

Μόνο ανάγνωσηΚάθε μέλος

Ανάγνωση του χρήστη, του ιατρείου του, του ρόλου του και του vertical pack του ιατρείου.

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_me",
    "arguments": {}
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the requested records" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.

list_practice_members

Μόνο ανάγνωσηΚάθε μέλος

Λίστα μελών προσωπικού και ρόλων.

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_practice_members",
    "arguments": {}
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the requested records" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.

list_invitations

Μόνο ανάγνωσηΜόνο ιδιοκτήτης

Λίστα εκκρεμών προσκλήσεων προσωπικού.

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_invitations",
    "arguments": {}
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the requested records" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
forbidden403Ο καλών δεν είναι ιδιοκτήτης του ιατρείου.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.

update_practice

ΓράφειΜόνο ιδιοκτήτης

Ενημέρωση του ιατρείου. Πεδία προφίλ και ρυθμίσεων μπορούν να συνδυαστούν σε μία κλήση· κάθε άγνωστο πεδίο απορρίπτεται.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
namestringΠροαιρετικόThe practice's name.
addressstringΠροαιρετικόFree-form address, kept for backward compatibility. Prefer the addressStreet/City/Region/Postcode fields below, which feed the public site and its structured data.
phonestringΠροαιρετικόPublic contact number, shown on the practice website.
addressStreetstringΠροαιρετικόStreet and number.
addressCitystringΠροαιρετικόCity or town.
addressRegionstringΠροαιρετικόRegion, state or county.
addressPostcodestringΠροαιρετικόPostal code.
emailstringΠροαιρετικόPublic contact address, shown on the practice website.
websitestringΠροαιρετικόThe practice's own external website, if any.
countrystringΠροαιρετικόCountry the practice operates in.
currencystringΠροαιρετικόISO currency code, e.g. "EUR".
legalNamestringΠροαιρετικόThe practice's registered legal name, printed on receipts and invoices when it differs from the display name. Empty string clears it.
taxIdstringΠροαιρετικόThe practice's tax id (in Greece, the ΑΦΜ), printed on receipts and invoices.
taxOfficestringΠροαιρετικόThe tax office the practice is registered with (in Greece, the ΔΟΥ).
packIdstringΠροαιρετικόThe practice's vertical pack, which determines its terminology and patient statuses. Read the current value from get_me before changing it; an unknown id is rejected without listing the valid ones.
workTimeStartstringΠροαιρετικόLegacy single working-day start as "HH:MM". Superseded by openingHours, which is what availability and the public site actually read; this remains the fallback for a practice that has no openingHours set.
workTimeEndstringΠροαιρετικόLegacy single working-day end as "HH:MM". See workTimeStart.
openingHoursarray<object>ΠροαιρετικόPer-weekday opening hours. Days omitted from the array are treated as closed. This drives online-booking availability and what the practice website shows, so a day marked closed is not bookable. Send the WHOLE week -- this field replaces the stored value rather than merging into it.
calendarSlotMinutesintegerΠροαιρετικόGranularity of the calendar grid, in minutes.
reminderLeadMinutesintegerΠροαιρετικόHow far ahead of an appointment its reminder is sent, in minutes.
bookingRequestExpiryWorkingHoursnumberΠροαιρετικόHours of opening time a booking request from the practice website may wait for an answer. When it runs out the request expires, the time is freed and the patient is emailed. Counted only while the practice is open. 0 means requests never expire. Default 2.
reminderChannelsobjectΠροαιρετικόWhich reminder channels the practice offers. Send both switches. A channel switched off sends no reminders at all, whatever each patient chose, and form questions about it are hidden from patients. SMS uses credits.
taxPercentageintegerΠροαιρετικόVAT rate as a whole percentage — 24 means 24%, not 0.24.
includeTaxInInvoicesbooleanΠροαιρετικόWhether taxPercentage is applied to invoice totals.
taxExemptionNotestringΠροαιρετικόWording printed on a receipt or invoice that charges no tax, such as the legal basis of a VAT exemption. Only printed when the document's tax is 0. Empty string means no note.
timezonestringΠροαιρετικόIANA timezone identifier, e.g. "Europe/Athens". Not an offset.
mfaRequiredbooleanΠροαιρετικόWhen true, every member must sign in with a second factor. Turning this on locks out members who have not enrolled one.

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_practice",
    "arguments": {
      "name": "Smile Dental",
      "phone": "+30 210 000 0000",
      "workTimeStart": "09:00",
      "workTimeEnd": "18:00"
    }
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the written record" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
not_found404Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο.
forbidden403Ο καλών δεν είναι ιδιοκτήτης του ιατρείου.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.
subscription_read_only403Η συνδρομή έχει λήξει, οπότε το ιατρείο είναι μόνο για ανάγνωση και δεν γράφεται τίποτα.

update_me

ΓράφειΚάθε μέλος

Ενημέρωση των δικών σας προτιμήσεων. Ρυθμίζεται μόνο η γλώσσα διεπαφής.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
localestring: en | elΥποχρεωτικό

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_me",
    "arguments": {
      "locale": "el"
    }
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the written record" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.

report_bug

ΓράφειΚάθε μέλος

Αναφορά σφάλματος στο ίδιο το HyperCRM. Η αναφορά αποθηκεύεται και στέλνεται με email στην ομάδα του HyperCRM, μαζί με το ποιος τη στέλνει. Έως 5 ανά χρήστη την ώρα. Μη γράφετε στοιχεία ασθενών.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
descriptionstringΥποχρεωτικόWhat happened, in the user's words.
expectedstringΠροαιρετικόWhat the user expected to happen instead.
pagePathstringΠροαιρετικόThe dashboard path where it happened, e.g. "/dashboard/calendar".

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "report_bug",
    "arguments": {
      "description": "..."
    }
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the written record" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.

write_practice_member

ΓράφειΜόνο ιδιοκτήτης

action=update_role θέτει ρόλο ιδιοκτήτη (`owner`) ή προσωπικού (`assistant`)· action=remove αφαιρεί το μέλος. Και τα δύο απορρίπτονται αν θα άφηναν το ιατρείο χωρίς ιδιοκτήτη.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
actionstring: update_profile | update_role | removeΥποχρεωτικό
membershipIdstringΥποχρεωτικόThe membership to change. This is the membership id from list_practice_members, NOT the user id.
rolestring: owner | assistantΠροαιρετικόThe new role. Required for action=update_role.
publicDisplayNamestringΠροαιρετικόThe name shown on the website, for action=update_profile.
publicTitlestringΠροαιρετικόTheir title on the website, e.g. "Παιδοδοντίατρος".
credentialsstringΠροαιρετικόQualifications shown under the name, e.g. "DDS, MSc".
biostringΠροαιρετικόA short profile paragraph for the website.
specialtiesarray<string>ΠροαιρετικόThe member's specialties, as shown on the website. This REPLACES the list, so to add one, read the current list with list_practice_members and send it back with the new one included.
publicProfileEnabledbooleanΠροαιρετικόWhether this member appears on the website at all.

Παράδειγμα κλήσης

action=update_profile

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_practice_member",
    "arguments": {
      "action": "update_profile",
      "membershipId": "4758697a-a5b6-4708-b3c4-d5e6f708192a",
      "publicDisplayName": "Dr A. Papadopoulou",
      "publicTitle": "Orthodontist",
      "publicProfileEnabled": true
    }
  }
}

action=update_role

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_practice_member",
    "arguments": {
      "action": "update_role",
      "membershipId": "4758697a-a5b6-4708-b3c4-d5e6f708192a",
      "role": "assistant"
    }
  }
}

action=remove

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_practice_member",
    "arguments": {
      "action": "remove",
      "membershipId": "4758697a-a5b6-4708-b3c4-d5e6f708192a"
    }
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the written record" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
not_found404Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο.
forbidden403Ο καλών δεν είναι ιδιοκτήτης του ιατρείου.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.
subscription_read_only403Η συνδρομή έχει λήξει, οπότε το ιατρείο είναι μόνο για ανάγνωση και δεν γράφεται τίποτα.

write_invitation

ΓράφειΜπορεί να διαγράψειΒγαίνει προς τα έξωΜόνο ιδιοκτήτης

action=create ΣΤΕΛΝΕΙ ΠΡΑΓΜΑΤΙΚΟ EMAIL με σύνδεσμο μίας χρήσης που λήγει σε 3 ημέρες· action=revoke διαγράφει εκκρεμή πρόσκληση.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
actionstring: create | revokeΥποχρεωτικό
invitationIdstringΠροαιρετικόThe pending invitation to revoke. Use list_invitations for ids.
emailstringΠροαιρετικόWhere the join link is sent. Required for action=create. A real email goes to this address as soon as the call succeeds.
rolestring: owner | assistantΠροαιρετικόThe role the invitee gets on joining. Required for action=create. owner can manage staff, billing settings and the website; assistant cannot.

Παράδειγμα κλήσης

action=create

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_invitation",
    "arguments": {
      "action": "create",
      "email": "reception@example.com",
      "role": "assistant"
    }
  }
}

action=revoke

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_invitation",
    "arguments": {
      "action": "revoke",
      "invitationId": "58697a8b-b6c7-4819-c4d5-e6f708192a3b"
    }
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the written record" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
not_found404Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο.
forbidden403Ο καλών δεν είναι ιδιοκτήτης του ιατρείου.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.
subscription_read_only403Η συνδρομή έχει λήξει, οπότε το ιατρείο είναι μόνο για ανάγνωση και δεν γράφεται τίποτα.

Συχνές ερωτήσεις

Οι καρτέλες ασθενών κρυπτογραφούνται, και εκεί που φυλάσσονται και καθώς έρχονται στην οθόνη σας. Τα αρχεία είναι ιδιωτικά, και ο σύνδεσμος προς ένα αρχείο σταματά να δουλεύει μετά από λίγο. Οι αλλαγές στις καρτέλες των ασθενών καταγράφονται, με το ποιος τις έκανε και πότε. Δεν υπάρχει κοινός κωδικός ιατρείου: ο καθένας έχει τον δικό του λογαριασμό. Στο πακέτο Complete, ο ιδιοκτήτης του ιατρείου μπορεί επίσης να απαιτεί σύνδεση σε δύο βήματα για όλη την ομάδα.

Ναι. Ο ιδιοκτήτης του ιατρείου μπορεί να εξάγει τον κατάλογο ασθενών, τις αναφορές και το ιστορικό ενεργειών σε αρχείο υπολογιστικού φύλλου (CSV) μέσα από την εφαρμογή, και οποιοσδήποτε στο ιατρείο μπορεί να κατεβάσει τα αρχεία του οποιαδήποτε στιγμή. Τα δεδομένα του ιατρείου σας ανήκουν σε εσάς, χωρίς χρέωση ή καθυστέρηση εξαγωγής. Αυτό ισχύει και στα δύο πακέτα, στη δοκιμή, αλλά και μετά την ακύρωση.

Το HyperCRM είναι λογισμικό επί πληρωμή. Κάθε ιατρείο ξεκινά με δωρεάν δοκιμή 30 ημερών στο πακέτο Complete, χωρίς κάρτα. Στη συνέχεια τα πακέτα ξεκινούν από 19 € και 34 € τον μήνα, με ΦΠΑ. Η τιμή εξαρτάται από το πόσους επαγγελματίες υγείας απασχολείτε. Κάθε τιμή βρίσκεται στη σελίδα τιμών, οπότε δεν χρειάζεται να μιλήσετε με πωλητή.