Αναφορά 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_required | 403 | Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το 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_required | 403 | Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το 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_required | 403 | Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το 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>" }]
}
}Σφάλματα
| Κωδικός | Κατάσταση | Πότε |
|---|---|---|
| forbidden | 403 | Ο καλών δεν είναι ιδιοκτήτης του ιατρείου. |
| plan_feature_required | 403 | Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete. |
update_practice
Ενημέρωση του ιατρείου. Πεδία προφίλ και ρυθμίσεων μπορούν να συνδυαστούν σε μία κλήση· κάθε άγνωστο πεδίο απορρίπτεται.
Παράμετροι
| Εργαλείο | Τύπος | Υποχρεωτικό; | Τι σημαίνει |
|---|---|---|---|
| name | string | Προαιρετικό | The practice's name. |
| address | string | Προαιρετικό | Free-form address, kept for backward compatibility. Prefer the addressStreet/City/Region/Postcode fields below, which feed the public site and its structured data. |
| phone | string | Προαιρετικό | Public contact number, shown on the practice website. |
| addressStreet | string | Προαιρετικό | Street and number. |
| addressCity | string | Προαιρετικό | City or town. |
| addressRegion | string | Προαιρετικό | Region, state or county. |
| addressPostcode | string | Προαιρετικό | Postal code. |
| string | Προαιρετικό | Public contact address, shown on the practice website. | |
| website | string | Προαιρετικό | The practice's own external website, if any. |
| country | string | Προαιρετικό | Country the practice operates in. |
| currency | string | Προαιρετικό | ISO currency code, e.g. "EUR". |
| legalName | string | Προαιρετικό | The practice's registered legal name, printed on receipts and invoices when it differs from the display name. Empty string clears it. |
| taxId | string | Προαιρετικό | The practice's tax id (in Greece, the ΑΦΜ), printed on receipts and invoices. |
| taxOffice | string | Προαιρετικό | The tax office the practice is registered with (in Greece, the ΔΟΥ). |
| packId | string | Προαιρετικό | 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. |
| workTimeStart | string | Προαιρετικό | 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. |
| workTimeEnd | string | Προαιρετικό | Legacy single working-day end as "HH:MM". See workTimeStart. |
| openingHours | array<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. |
| calendarSlotMinutes | integer | Προαιρετικό | Granularity of the calendar grid, in minutes. |
| reminderLeadMinutes | integer | Προαιρετικό | How far ahead of an appointment its reminder is sent, in minutes. |
| bookingRequestExpiryWorkingHours | number | Προαιρετικό | 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. |
| reminderChannels | object | Προαιρετικό | 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. |
| taxPercentage | integer | Προαιρετικό | VAT rate as a whole percentage — 24 means 24%, not 0.24. |
| includeTaxInInvoices | boolean | Προαιρετικό | Whether taxPercentage is applied to invoice totals. |
| taxExemptionNote | string | Προαιρετικό | 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. |
| timezone | string | Προαιρετικό | IANA timezone identifier, e.g. "Europe/Athens". Not an offset. |
| mfaRequired | boolean | Προαιρετικό | 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_failed | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| not_found | 404 | Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο. |
| forbidden | 403 | Ο καλών δεν είναι ιδιοκτήτης του ιατρείου. |
| plan_feature_required | 403 | Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete. |
| subscription_read_only | 403 | Η συνδρομή έχει λήξει, οπότε το ιατρείο είναι μόνο για ανάγνωση και δεν γράφεται τίποτα. |
update_me
Ενημέρωση των δικών σας προτιμήσεων. Ρυθμίζεται μόνο η γλώσσα διεπαφής.
Παράμετροι
| Εργαλείο | Τύπος | Υποχρεωτικό; | Τι σημαίνει |
|---|---|---|---|
| locale | string: 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_failed | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| plan_feature_required | 403 | Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete. |
report_bug
Αναφορά σφάλματος στο ίδιο το HyperCRM. Η αναφορά αποθηκεύεται και στέλνεται με email στην ομάδα του HyperCRM, μαζί με το ποιος τη στέλνει. Έως 5 ανά χρήστη την ώρα. Μη γράφετε στοιχεία ασθενών.
Παράμετροι
| Εργαλείο | Τύπος | Υποχρεωτικό; | Τι σημαίνει |
|---|---|---|---|
| description | string | Υποχρεωτικό | What happened, in the user's words. |
| expected | string | Προαιρετικό | What the user expected to happen instead. |
| pagePath | string | Προαιρετικό | 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_failed | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| plan_feature_required | 403 | Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete. |
write_practice_member
action=update_role θέτει ρόλο ιδιοκτήτη (`owner`) ή προσωπικού (`assistant`)· action=remove αφαιρεί το μέλος. Και τα δύο απορρίπτονται αν θα άφηναν το ιατρείο χωρίς ιδιοκτήτη.
Παράμετροι
| Εργαλείο | Τύπος | Υποχρεωτικό; | Τι σημαίνει |
|---|---|---|---|
| action | string: update_profile | update_role | remove | Υποχρεωτικό | |
| membershipId | string | Υποχρεωτικό | The membership to change. This is the membership id from list_practice_members, NOT the user id. |
| role | string: owner | assistant | Προαιρετικό | The new role. Required for action=update_role. |
| publicDisplayName | string | Προαιρετικό | The name shown on the website, for action=update_profile. |
| publicTitle | string | Προαιρετικό | Their title on the website, e.g. "Παιδοδοντίατρος". |
| credentials | string | Προαιρετικό | Qualifications shown under the name, e.g. "DDS, MSc". |
| bio | string | Προαιρετικό | A short profile paragraph for the website. |
| specialties | array<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. |
| publicProfileEnabled | boolean | Προαιρετικό | 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_failed | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| not_found | 404 | Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο. |
| forbidden | 403 | Ο καλών δεν είναι ιδιοκτήτης του ιατρείου. |
| plan_feature_required | 403 | Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete. |
| subscription_read_only | 403 | Η συνδρομή έχει λήξει, οπότε το ιατρείο είναι μόνο για ανάγνωση και δεν γράφεται τίποτα. |
write_invitation
action=create ΣΤΕΛΝΕΙ ΠΡΑΓΜΑΤΙΚΟ EMAIL με σύνδεσμο μίας χρήσης που λήγει σε 3 ημέρες· action=revoke διαγράφει εκκρεμή πρόσκληση.
Παράμετροι
| Εργαλείο | Τύπος | Υποχρεωτικό; | Τι σημαίνει |
|---|---|---|---|
| action | string: create | revoke | Υποχρεωτικό | |
| invitationId | string | Προαιρετικό | The pending invitation to revoke. Use list_invitations for ids. |
| string | Προαιρετικό | Where the join link is sent. Required for action=create. A real email goes to this address as soon as the call succeeds. | |
| role | string: 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_failed | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| not_found | 404 | Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο. |
| forbidden | 403 | Ο καλών δεν είναι ιδιοκτήτης του ιατρείου. |
| plan_feature_required | 403 | Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete. |
| subscription_read_only | 403 | Η συνδρομή έχει λήξει, οπότε το ιατρείο είναι μόνο για ανάγνωση και δεν γράφεται τίποτα. |
Συχνές ερωτήσεις
Οι καρτέλες ασθενών κρυπτογραφούνται, και εκεί που φυλάσσονται και καθώς έρχονται στην οθόνη σας. Τα αρχεία είναι ιδιωτικά, και ο σύνδεσμος προς ένα αρχείο σταματά να δουλεύει μετά από λίγο. Οι αλλαγές στις καρτέλες των ασθενών καταγράφονται, με το ποιος τις έκανε και πότε. Δεν υπάρχει κοινός κωδικός ιατρείου: ο καθένας έχει τον δικό του λογαριασμό. Στο πακέτο Complete, ο ιδιοκτήτης του ιατρείου μπορεί επίσης να απαιτεί σύνδεση σε δύο βήματα για όλη την ομάδα.
Ναι. Ο ιδιοκτήτης του ιατρείου μπορεί να εξάγει τον κατάλογο ασθενών, τις αναφορές και το ιστορικό ενεργειών σε αρχείο υπολογιστικού φύλλου (CSV) μέσα από την εφαρμογή, και οποιοσδήποτε στο ιατρείο μπορεί να κατεβάσει τα αρχεία του οποιαδήποτε στιγμή. Τα δεδομένα του ιατρείου σας ανήκουν σε εσάς, χωρίς χρέωση ή καθυστέρηση εξαγωγής. Αυτό ισχύει και στα δύο πακέτα, στη δοκιμή, αλλά και μετά την ακύρωση.
Το HyperCRM είναι λογισμικό επί πληρωμή. Κάθε ιατρείο ξεκινά με δωρεάν δοκιμή 30 ημερών στο πακέτο Complete, χωρίς κάρτα. Στη συνέχεια τα πακέτα ξεκινούν από 19 € και 34 € τον μήνα, με ΦΠΑ. Η τιμή εξαρτάται από το πόσους επαγγελματίες υγείας απασχολείτε. Κάθε τιμή βρίσκεται στη σελίδα τιμών, οπότε δεν χρειάζεται να μιλήσετε με πωλητή.