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

Αναφορά MCP / Ασθενείς

Εργαλεία ασθενών

Δεκατέσσερα εργαλεία για τον φάκελο του ασθενή, τις κλινικές σημειώσεις, τις θεραπείες και τους υποπόρους του. Καθένα με τις παραμέτρους του, παράδειγμα κλήσης και το τι επιστρέφει.

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

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

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

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

Ασθενείς

Ο φάκελος του ασθενή, οι σημειώσεις του, οι θεραπείες του και οι υποπόροι που κρέμονται από αυτόν.

list_patients

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

Λίστα ασθενών του ιατρείου, με προαιρετική αναζήτηση και φίλτρα κατάστασης και ετικέτας.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
searchstringΠροαιρετικόMatches against name, email and phone. This is the argument — the `search` tool calls the same thing `q`, and sending that name here used to return the first page of every patient instead of a search. Both work now, and the answer echoes what it searched for.
qstringΠροαιρετικόAn alias for `search`. Prefer `search`.
statusstringΠροαιρετικόOne of this practice's pack-defined status ids — read them from get_me (pack.patientStatuses) rather than assuming.
tagIdstringΠροαιρετικόUse list_tags to find tag ids.
includeInactivebooleanΠροαιρετικόAlso list inactive records (archived, no longer seen), marked isActive=false. The answer always says how many it left out (inactiveCount).
limitintegerΠροαιρετικόHow many rows to return. Defaults to 50; at most 200 (a larger value is lowered to it, not rejected).
offsetintegerΠροαιρετικόHow many rows to skip, for paging through a long list. At most 100000.

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

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

Αποτέλεσμα

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

Σφάλματα

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

get_patient

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

Ανάγνωση ενός ασθενή με βάση το id.

Παράμετροι

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

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

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_patient",
    "arguments": {
      "patientId": "b065ac83-b065-4c3a-9e21-7b84c5d10f33"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

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

list_patient_notes

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

Λίστα όλων των κλινικών σημειώσεων ενός ασθενή.

Παράμετροι

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

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

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_patient_notes",
    "arguments": {
      "patientId": "b065ac83-b065-4c3a-9e21-7b84c5d10f33"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

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

list_patient_files

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

Λίστα αρχείων ασθενή. Χρησιμοποιήστε το get_file για σύνδεσμο λήψης.

Παράμετροι

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

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

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_patient_files",
    "arguments": {
      "patientId": "b065ac83-b065-4c3a-9e21-7b84c5d10f33"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

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

list_patient_billing_entries

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

Λίστα των χρεώσεων που έχουν καταγραφεί για έναν ασθενή, μαζί με το υπόλοιπο: τι οφείλει τώρα, το ίδιο ποσό με το καθολικό στη σελίδα του ασθενή. Χρησιμοποιήστε αυτό αντί να αθροίζετε εγγραφές. Μια εγγραφή receipt είναι είσπραξη, όχι παραστατικό.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
patientIdstringΥποχρεωτικό
includeVoidedbooleanΠροαιρετικόAlso list voided (cancelled) rows, marked voided=true. Only for a question about what was voided: they count for nothing. The answer always says how many it left out (voidedCount).
limitintegerΠροαιρετικόHow many entries to return, the newest kept. The answer says when older ones were left out (truncated); totals always cover every entry matched.

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

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_patient_billing_entries",
    "arguments": {
      "patientId": "b065ac83-b065-4c3a-9e21-7b84c5d10f33"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

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

list_patient_invoices

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

Λίστα των αποδείξεων και τιμολογίων που έχουν εκδοθεί για έναν ασθενή.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
patientIdstringΥποχρεωτικό
includeVoidedbooleanΠροαιρετικόAlso list voided (cancelled) rows, marked voided=true. Only for a question about what was voided: they count for nothing. The answer always says how many it left out (voidedCount).

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

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_patient_invoices",
    "arguments": {
      "patientId": "b065ac83-b065-4c3a-9e21-7b84c5d10f33"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

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

get_patient_invoice_preview

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

Υπολογισμός προσχεδίου απόδειξης ή τιμολογίου για τις μη χρεωμένες εγγραφές, χωρίς έκδοση. Για έκδοση χρησιμοποιήστε write_invoice με action=issue.

Παράμετροι

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

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

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_patient_invoice_preview",
    "arguments": {
      "patientId": "b065ac83-b065-4c3a-9e21-7b84c5d10f33"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

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

write_patient

ΓράφειΜπορεί να διαγράψειΚάθε μέλος

Δημιουργία, ενημέρωση ή διαγραφή ασθενή. action=create απαιτεί firstName και lastName· update και delete απαιτούν patientId. Η διαγραφή είναι μόνιμη. Μια δημιουργία με όνομα που υπάρχει ήδη στο ιατρείο απορρίπτεται με patient_exists. Με differentPerson: true η καταχώριση γίνεται, αφού το ιατρείο πει ότι είναι άλλο πρόσωπο. Ο server δεν μπορεί να ελέγξει ότι το είπε, και το ιστορικό ενεργειών το καταγράφει.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
actionstring: create | update | deleteΥποχρεωτικό
patientIdstringΠροαιρετικόThe patient to update or delete.
firstNamestringΠροαιρετικόRequired for action=create.
lastNamestringΠροαιρετικόRequired for action=create.
dobstringΠροαιρετικόDate of birth, YYYY-MM-DD. Send it ONLY if the caller stated it — never a placeholder, never the earliest date this field accepts, never a guess from anything else on the record. A patient with no date of birth stays that way until somebody tells you theirs. Must be a real past date, and the practice's own records are the only source for it.
genderstringΠροαιρετικόFree text — the practice records whatever the patient told them.
emailstringΠροαιρετικόThe patient's email address, only if the caller gave it. A patient with no email stays that way: do not compose one from their name, and do not send an example address.
phoneMobilestringΠροαιρετικόMobile number, as the practice records it, and only if the caller gave it. Never a placeholder such as a run of zeros: a patient with no number stays that way.
addressstringΠροαιρετικόStreet address, free text.
postcodestringΠροαιρετικόPostal code.
countrystringΠροαιρετικόCountry, free text.
socialSecurityNumberstringΠροαιρετικόThe patient's social security number (in Greece, the ΑΜΚΑ). Send an empty string to clear it.
taxIdstringΠροαιρετικόThe patient's tax id (in Greece, the ΑΦΜ). Only needed for a tax invoice (write_invoice kind=invoice). Send an empty string to clear it.
taxOfficestringΠροαιρετικόThe tax office the patient's tax id is registered with (in Greece, the ΔΟΥ).
statusstringΠροαιρετικόMust be one of the status ids defined by this practice's vertical pack — the values differ per pack, so read them from get_me (pack.patientStatuses) rather than assuming. Any other value is rejected.
notifyByEmailbooleanΠροαιρετικόWhether the patient consents to email reminders. Defaults to false when a patient is created without it. Booking emails (booked, confirmed, cancelled) are sent regardless.
notifyBySmsbooleanΠροαιρετικόWhether the patient consents to SMS reminders. Defaults to false when a patient is created without it.
fileUseConsentboolean | nullΠροαιρετικόWhether the patient consents to their files (x-rays, scans, photos) being used for teaching or promotion. Null means nobody has asked, which is NOT a refusal, and is what a patient created without it holds. Send it only when the practice said what the patient answered: never infer it.
differentPersonbooleanΠροαιρετικόaction=create only, and only after a patient_exists refusal and the practice saying this is somebody else with the same name. The server cannot check that the practice said so; the new record's activity log entry names the existing ones.

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

action=create

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_patient",
    "arguments": {
      "action": "create",
      "firstName": "Anna",
      "lastName": "Papadopoulou",
      "phoneMobile": "+30 694 000 0000"
    }
  }
}

action=update

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_patient",
    "arguments": {
      "action": "update",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "email": "anna.papadopoulou@example.com",
      "notifyBySms": true
    }
  }
}

action=delete

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_patient",
    "arguments": {
      "action": "delete",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

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

write_patient_note

ΓράφειΜπορεί να διαγράψειΚάθε μέλος

Δημιουργία, ενημέρωση ή διαγραφή σημείωσης ασθενή. action=create απαιτεί body· update και delete απαιτούν noteId.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
actionstring: create | update | deleteΥποχρεωτικό
patientIdstringΥποχρεωτικόThe patient the note belongs to.
noteIdstringΠροαιρετικόThe note to update or delete.
titlestringΠροαιρετικόOptional heading for the note.
bodystringΠροαιρετικόThe note's text. Required for action=create, and must be non-empty.

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

action=create

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_patient_note",
    "arguments": {
      "action": "create",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "title": "Check-up",
      "body": "Reviewed the upper right quadrant. No new findings."
    }
  }
}

action=update

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_patient_note",
    "arguments": {
      "action": "update",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "noteId": "1a2b3c4d-7e8f-4a5b-8c9d-0e1f2a3b4c5d",
      "body": "Reviewed the upper right quadrant. Recall in six months."
    }
  }
}

action=delete

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_patient_note",
    "arguments": {
      "action": "delete",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "noteId": "1a2b3c4d-7e8f-4a5b-8c9d-0e1f2a3b4c5d"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

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

toggle_patient_tag

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

Προσθέτει την ετικέτα αν λείπει, την αφαιρεί αν υπάρχει ήδη.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
patientIdstringΥποχρεωτικό
tagIdstringΥποχρεωτικόUse list_tags to find tag ids.

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

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "toggle_patient_tag",
    "arguments": {
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "tagId": "70819203-3e4f-4091-8c5d-6e7f8091a2b3"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

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

list_treatment_courses

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

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

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
patientIdstringΥποχρεωτικόThe patient whose record this is.

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

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_treatment_courses",
    "arguments": {
      "patientId": "b065ac83-b065-4c3a-9e21-7b84c5d10f33"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

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

list_treatment_picklists

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

Οι τύποι διάγνωσης και οι τύποι θεραπείας του ιατρείου, οι λέξεις με τις οποίες χαρακτηρίζεται μια θεραπεία. Τα αρχειοθετημένα μόνο αν ζητηθούν.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
kindstring: diagnosis | treatmentΠροαιρετικόOnly this list: diagnosis or treatment. Omit for both.
includeArchivedbooleanΠροαιρετικόAlso list archived types, marked archived=true.

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

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

Αποτέλεσμα

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

Σφάλματα

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

write_treatment_course

ΓράφειΜπορεί να διαγράψειΚάθε μέλος

Έναρξη, αλλαγή ή αφαίρεση μιας θεραπείας. Το action=create απαιτεί title· τα update και void απαιτούν courseId και expectedUpdatedAt. Μια θεραπεία που αφαιρείται κρατά τη γραμμή και τις επισκέψεις της, εκτός λίστας.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
actionstring: create | update | voidΥποχρεωτικό
patientIdstringΥποχρεωτικόThe patient whose record this is.
courseIdstringΠροαιρετικόThe course to change or remove, from list_treatment_courses.
titlestringΠροαιρετικόWhat the course is, in a few words («Orthodontic treatment», «Physiotherapy, left knee»). Required for action=create.
statusstring: planned | in_progress | completed | discontinuedΠροαιρετικόWhere the course stands. action=create defaults to planned. completed and discontinued end it.
diagnosisstring | nullΠροαιρετικόWhat was found, as the user said it. Send null to clear it.
planstring | nullΠροαιρετικόThe treatment plan, as the user said it. Send null to clear it.
diagnosisTypeIdsarray<string>ΠροαιρετικόIds of the practice's diagnosis types (list_treatment_picklists kind=diagnosis), in the order shown. Replaces the whole list; [] clears it. An id that is not this practice's, is of the other list, or is archived (unless the course already has it) is refused (400, unknown_picklist_item). Only types the user named.
treatmentTypeIdsarray<string>ΠροαιρετικόIds of the practice's treatment types (list_treatment_picklists kind=treatment), in the order shown. Replaces the whole list; [] clears it. An id that is not this practice's, is of the other list, or is archived (unless the course already has it) is refused (400, unknown_picklist_item). Only types the user named.
startDatestring | nullΠροαιρετικόWhen treatment started. YYYY-MM-DD; send null to clear it.
plannedEndDatestring | nullΠροαιρετικόWhen treatment is planned to end; not before startDate. YYYY-MM-DD; send null to clear it.
nextStepDatestring | nullΠροαιρετικόWhen the next step is due. YYYY-MM-DD; send null to clear it.
nextStepNotestring | nullΠροαιρετικόWhat to do next, as the user said it. Send null to clear it.
expectedUpdatedAtstringΠροαιρετικόThe course's updatedAt exactly as list_treatment_courses gave it. If it has changed since, nothing is written and the call fails with 409 (details[0].code: stale_version, or course_voided when it was removed): read again and retry. Never make one up.
reasonstring: entered_in_error | duplicate | otherΠροαιρετικόWhy it is removed. Optional; a closed list, no free text is stored.

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

action=create

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_treatment_course",
    "arguments": {
      "action": "create",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "title": "Orthodontic treatment",
      "startDate": "2026-11-02"
    }
  }
}

action=update

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_treatment_course",
    "arguments": {
      "action": "update",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "courseId": "7a8b9cad-d8e9-4a2b-e6f7-08192a3b4c5d",
      "expectedUpdatedAt": "2026-11-02T08:30:00.000Z",
      "nextStepDate": "2026-12-01",
      "nextStepNote": "Adjust the archwire"
    }
  }
}

action=void

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_treatment_course",
    "arguments": {
      "action": "void",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "courseId": "7a8b9cad-d8e9-4a2b-e6f7-08192a3b4c5d",
      "expectedUpdatedAt": "2026-11-02T08:30:00.000Z",
      "reason": "entered_in_error"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
not_found404Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο.
conflict409Η εγγραφή άλλαξε από τότε που τη διαβάσατε (details[0].code: stale_version), ή έχει ακυρωθεί. Διαβάστε την ξανά και ξαναδοκιμάστε. Μην επινοείτε ποτέ expectedUpdatedAt.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.
subscription_read_only403Η συνδρομή έχει λήξει, οπότε το ιατρείο είναι μόνο για ανάγνωση και δεν γράφεται τίποτα.

write_treatment_visit

ΓράφειΜπορεί να διαγράψειΚάθε μέλος

Καταγραφή, αλλαγή ή αφαίρεση μιας επίσκεψης σε θεραπεία. Το action=create απαιτεί body και μπορεί να συνδέσει το ραντεβού του ασθενή από το οποίο καταγράφηκε· τα update και void απαιτούν visitId και expectedUpdatedAt.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
actionstring: create | update | voidΥποχρεωτικό
patientIdstringΥποχρεωτικόThe patient whose record this is.
courseIdstringΥποχρεωτικόThe course, from list_treatment_courses.
visitIdstringΠροαιρετικόThe visit to change or remove, from list_treatment_courses.
visitDatestringΠροαιρετικόThe day of the visit, YYYY-MM-DD. action=create defaults to the practice's today.
bodystringΠροαιρετικόWhat was done at the visit, as the user said it. Required for action=create.
appointmentIdstringΠροαιρετικόaction=create only: the patient's appointment this visit is logged from, from a read of their bookings. It must be one of this patient's (400 appointment_not_patients).
expectedUpdatedAtstringΠροαιρετικόThe visit's updatedAt exactly as list_treatment_courses gave it. If it has changed since, nothing is written (409, stale_version or visit_voided): read again and retry.
reasonstring: entered_in_error | duplicate | otherΠροαιρετικόWhy it is removed. Optional; a closed list, no free text is stored.

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

action=create

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_treatment_visit",
    "arguments": {
      "action": "create",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "courseId": "7a8b9cad-d8e9-4a2b-e6f7-08192a3b4c5d",
      "visitDate": "2026-11-02",
      "body": "Fitted the brackets on the upper arch."
    }
  }
}

action=update

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_treatment_visit",
    "arguments": {
      "action": "update",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "courseId": "7a8b9cad-d8e9-4a2b-e6f7-08192a3b4c5d",
      "visitId": "8b9cadbe-e9fa-4b3c-f708-192a3b4c5d6e",
      "expectedUpdatedAt": "2026-11-02T08:30:00.000Z",
      "body": "Fitted the brackets on the upper arch. Patient tolerated it well."
    }
  }
}

action=void

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_treatment_visit",
    "arguments": {
      "action": "void",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "courseId": "7a8b9cad-d8e9-4a2b-e6f7-08192a3b4c5d",
      "visitId": "8b9cadbe-e9fa-4b3c-f708-192a3b4c5d6e",
      "expectedUpdatedAt": "2026-11-02T08:30:00.000Z",
      "reason": "duplicate"
    }
  }
}

Αποτέλεσμα

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

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
not_found404Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο.
conflict409Η εγγραφή άλλαξε από τότε που τη διαβάσατε (details[0].code: stale_version), ή έχει ακυρωθεί. Διαβάστε την ξανά και ξαναδοκιμάστε. Μην επινοείτε ποτέ expectedUpdatedAt.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.
subscription_read_only403Η συνδρομή έχει λήξει, οπότε το ιατρείο είναι μόνο για ανάγνωση και δεν γράφεται τίποτα.

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

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

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

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