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

Αναφορά MCP / Φόρμες

Εργαλεία φορμών

Πέντε εργαλεία για φόρμες εισαγωγής και συγκατάθεσης και τις υποβολές τους. Η ανάγνωση μιας φόρμας, η ανάγνωση των απαντήσεων και η αποστολή μιας φόρμας σε ασθενή είναι ανοιχτές σε κάθε μέλος του ιατρείου. Η δημιουργία φόρμας θέλει ρόλο ιδιοκτήτη.

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

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

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

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

Φόρμες

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

list_forms

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

Λίστα των φορμών εισαγωγής και συγκατάθεσης του ιατρείου.

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

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

Αποτέλεσμα

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

Σφάλματα

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

get_form

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

Ανάγνωση μιας φόρμας με τα πεδία της.

Παράμετροι

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

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

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_form",
    "arguments": {
      "formId": "b962ee2a-b962-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_form_submissions

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

Μία σελίδα υποβολών μιας φόρμας, νεότερες πρώτα, με το σύνολο όλων των σελίδων.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
formIdstringΥποχρεωτικό
statusstring: all | submitted | pendingΠροαιρετικόsubmitted = completed forms, pending = links not yet filled in, all = both (default).
pageintegerΠροαιρετικό1-based page number. Default 1.
pageSizeintegerΠροαιρετικόSubmissions per page. Default 25, maximum 100.

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

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_form_submissions",
    "arguments": {
      "formId": "b962ee2a-b962-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_form_submission

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

Ανάγνωση μιας υποβολής και των απαντήσεών της.

Παράμετροι

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

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

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_form_submission",
    "arguments": {
      "formId": "b962ee2a-b962-4c3a-9e21-7b84c5d10f33",
      "submissionId": "a396314c-a396-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_form

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

Το action=create_link είναι ανοιχτό σε κάθε μέλος· κάθε άλλο action θέλει ρόλο ιδιοκτήτη. Το create_link εκδίδει ΔΗΜΟΣΙΟ σύνδεσμο μίας χρήσης που λήγει σε 3 ημέρες (προαιρετικά δεσμευμένο σε ασθενή, του οποίου τον φάκελο οι απαντήσεις τότε ενημερώνουν: ποτέ το όνομα, και email ή κινητό μόνο όπου το ιατρείο δεν έχει καταχωρημένο) και με send=email|sms τον στέλνει στον ασθενή· create φτιάχνει φόρμα· update επεξεργάζεται μεταδεδομένα· delete τη διαγράφει· replace_fields αντικαθιστά όλη τη λίστα πεδίων· seed_defaults εγκαθιστά τα πρότυπα του pack.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
actionstring: create | update | delete | replace_fields | create_link | seed_defaultsΥποχρεωτικό
formIdstringΠροαιρετικόThe form to act on. Required for every action except create and seed_defaults.
patientIdstringΠροαιρετικόFor action=create_link only: bind the link to an existing patient. Omit to have the submission create a new patient from its own answers. The answers go onto the bound record, but NOT as a blanket overwrite (`submissionPatient.ts`): the patient's name is never written from a form, and an email or mobile only fills a blank rather than replacing what the practice holds. A submission that was not sent to a named patient, and reached a record by matching a contact detail, is weaker still: it fills blanks only, and writes no name, email, mobile or consent at all. So a form is not a way to correct a patient's details.
sendstring: email | smsΠροαιρετικόFor action=create_link only: send the link to that patient as well as returning it. Requires patientId, and goes only to the address or number on that patient's own record — a recipient cannot be typed in. sms spends the practice's credits. Omit to mint the link without sending, which is what to do when the practice wants to hand it over themselves. A send that fails still returns a usable link, with the reason on `delivery`: read the URL out rather than trying again.
namestringΠροαιρετικόThe form's name. Required for action=create. Name it for what the form is for («Εγγραφή νέου ασθενούς», "Reminder consent"), from the practice's words or from its questions. Never a placeholder such as «Νέα φόρμα» or "New form": the practice reads this name on the confirmation card and on every link it sends.
descriptionstringΠροαιρετικόOptional blurb shown to the patient above the form.
isActivebooleanΠροαιρετικόWhether the form can currently be sent out.
fieldsarray<object>ΠροαιρετικόThe form's questions, for action=create (saved with the new form) and action=replace_fields. Each item is { label, type } plus optional required, options (for type=select), bindTo and id — see the item schema for what each one does. On replace_fields it is a FULL replacement: existing fields left out are deleted, so send every field you want to keep, and send an existing field's id (from get_form) to keep its answers, which are keyed by field id. Array order is the order they are shown in. Two rules bite: a type=signature field must not set bindTo, and bindTo of notifyBySms, notifyByEmail or fileUseConsent is CONSENT, needs type=checkbox, and in the case of fileUseConsent is the patient agreeing their x-rays, scans and photos may be used for teaching or promotion. Do not put one on a form unless the practice asked for it.

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

action=create

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_form",
    "arguments": {
      "action": "create",
      "name": "New patient details",
      "description": "Filled in before the first visit.",
      "fields": [
        {
          "label": "Όνομα",
          "type": "text",
          "required": true,
          "bindTo": "firstName"
        },
        {
          "label": "Επώνυμο",
          "type": "text",
          "required": true,
          "bindTo": "lastName"
        },
        {
          "label": "Κινητό",
          "type": "text",
          "bindTo": "phoneMobile"
        }
      ]
    }
  }
}

action=update

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_form",
    "arguments": {
      "action": "update",
      "formId": "81920314-4f50-41a2-9d6e-7f8091a2b3c4",
      "isActive": false
    }
  }
}

action=delete

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_form",
    "arguments": {
      "action": "delete",
      "formId": "81920314-4f50-41a2-9d6e-7f8091a2b3c4"
    }
  }
}

action=replace_fields

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_form",
    "arguments": {
      "action": "replace_fields",
      "formId": "81920314-4f50-41a2-9d6e-7f8091a2b3c4",
      "fields": [
        {
          "label": "Any allergies?",
          "type": "textarea"
        },
        {
          "label": "Signature",
          "type": "signature",
          "required": true
        }
      ]
    }
  }
}

action=create_link

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_form",
    "arguments": {
      "action": "create_link",
      "formId": "81920314-4f50-41a2-9d6e-7f8091a2b3c4",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "send": true
    }
  }
}

action=seed_defaults

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

Αποτέλεσμα

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

Σφάλματα

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

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

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

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

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