Visit Took Place
Use the Visit Took Place screen to finalize completed appointments. This screen appears when doctors select Visit Took Place from the Appointment Details screen. It presents a structured, three-step wizard for submitting visit notes, applying charges or discounts, and uploading documentation.

This screen includes:
- A multi-step progress indicator: Visit Summary, Charges, Documents.
- A memo field for diagnosis and treatment notes.
- Optional upload for a visit summary document.
- A Continue button enabled after completing required fields.
- Editable fields for additional charges and discounts.
- Categorized document upload with type selection and inline editing.
- Step-based visual navigation across the
Workflow
- In the Appointment Details screen, select Visit Took Place.
- The VTP wizard opens with patient and appointment details prefilled.
- Enter diagnosis and treatment notes in the summary step.
- Optionally, upload a visit summary document.
See Document Details for guidance. - In the Charges step, enter any additional fees or discounts.
- In the Documents step, upload medical files with valid type and notes.
- Select Save & Report Visit Took Place to complete submission.
Validations
- Require diagnosis and treatment summary in the first step.
- Disallow negative charge values.
- Block discounts that exceed or equal the doctor’s net fee.
- Validate charge and discount forms (amount, type, quantity).
- Require document name and valid type before upload.
- Allow only one discount per visit.
- Highlight invalid or missing fields inline.
- Apply frontend validation and recalculate totals automatically.
Actions
- Continue advances to the next step after validation.
- Save & Report Visit Took Place updates appointment status to complete.
- Group and categorize uploaded documents by type.
- Hide financial documents from patient view.
- Send notes, charges, discounts, and documents to the backend.
- Preserve entered data across steps and backward navigation.
- Block step transitions until all validations are complete.
SDK and API References
- SDK Reference
- API Reference
GET
/profile/appointments/{id}/summary
Use this method to retrieve the saved summary of a previously completed appointment. The response includes visit notes, applied charges, and attached medical documents.
UI Element Types
Level | Reference | Type | Value | Placement |
---|---|---|---|---|
1 | summary-header | Section | Visit summary | |
1 | internal-note | Memo | Enter diagnosis and treatment summary | 🗨 1 |
1 | summary-group~0 | Group | 🗨 1 | |
2 | summary-field-name~0 | Regular | ||
2 | summary-name-spacer~0 | Spacer | ~ | |
2 | summary-edit-button~0 | Link | Edit | ~ |
2 | summary-files~0 | Upload | ||
2 | summary-notes~0 | Edit | 🗨 1 | |
1 | summary-target | Regular | 🗨 1 | |
1 | attach-summary-text | Regular | Or upload visit summary: | |
1 | upload-visit-summary | Secondary | Upload Visit Summary | |
1 | bar | Bar | ||
1 | charges-header | Section | Charges | 🗨 1 |
1 | charges-info | Regular | If there were any additional treatments, please add them here: | |
1 | header-item | Extra | Item | |
1 | header-spacer | Spacer | ~ | |
1 | header-amount | Extra | Doctor fee | ~ |
1 | visit-type | Regular | visit type name | 🗨 1 |
1 | visit-spacer | Spacer | ~ | |
1 | visit-fee | Highlight | appointment net fee with currency | ~ |
1 | dashes | Dashes | ||
1 | charge-group~0 | Group | ||
2 | extra-title~0 | Regular | extra charge's notes | |
2 | extra-spacer~0 | Spacer | 🗨 1 | |
2 | extra-amount~0 | Highlight | quantity * price in appointment’s currency | ~ |
2 | extra-edit~0 | Link | Edit | ~ |
2 | charge-info~0 | Edit | extra charge's notes | 🗨 1 |
2 | charge-quantity~0 | Integer | extra charge's quantity | 🗨 1 |
2 | charge-price~0 | Double | extra charge's amount | 🗨 1 |
2 | dashes~0 | Dashes | ||
1 | extra-target | Regular | 🗨 1 | |
1 | discount-group | Group | 🗨 1 | |
2 | extra-title~d | Regular | discount’s notes | 🗨 1 |
2 | extra-spacer~d | Spacer | ~ | |
2 | extra-amount~d | Highlight | discount price in appointment's currency | 🗨 1 |
2 | extra-edit~d | Link | Edit | ~ |
2 | discount-type~d | Edit | the DiscountType in json representation | 🗨 1 |
2 | discount-amount~d | Double | the relative value of amount or percentage | 🗨 1 |
2 | dashes | Dashes | ||
1 | discount-target | Regular | 🗨 1 | |
1 | total-fee-title | Highlight | Total (doctor’s share) | |
1 | total-fee-spacer | Spacer | ~ | |
1 | total-fee | Highlight | total fee = appointment fee net + all charges - discount | ~ |
1 | add-charge | Ghost | Add charge | 🗨 1 |
1 | add-discount | Ghost | Add discount | 🗨 1 |
1 | bar | Bar | ||
1 | document-header | Section | Documents | |
1 | document-group~0 | Group | ||
2 | document-type-title~0 | Highlight | the MedicalDocumentType translations (represents ExpenseTypeEnum) | 🗨 1 |
2 | document-file-name~0 | Extra | document’s notes | |
2 | document-name-spacer~0 | Spacer | ~ | |
2 | document-edit-button~0 | Link | Edit | ~ |
2 | document-files~0 | Upload | ||
2 | document-type~0 | Edit | the MedicalDocumentType in json representation | 🗨 1 |
2 | document-notes~0 | Edit | document’s notes | 🗨 1 |
1 | document-target | Regular | 🗨 1 | |
1 | attach-medical-document | Secondary | Attach Documents | |
1 | bar | Bar | ||
1 | save | Button | Save & Report visit took place |
PATCH
/profile/appointments/{appointment-id}/summary/summaries
Add a summary document to the Visit Took Place screen when the user clicks Add document in the popup. Display the document immediately without reloading the screen.

PATCH
/profile/appointments/{appointment-id}/summary/summaries/update
Update a summary document on the VTP screen with new values when the user clicks Update. Display the updated document immediately without reloading the screen.

PATCH
/profile/appointments/{appointment-id}/summary/summaries/delete
Remove a summary document from the VTP screen when the user clicks Delete. Update the screen immediately without reloading.

POST
/profile/appointments/{id}/summary
Use this method to submit a visit summary after an appointment has taken place. The summary can include text, files, discount metadata, charges, and medical documents. At least one valid summary format is required.
Parameters
Name | Type | Required | Description |
---|---|---|---|
appointment-id | Integer | Yes | Unique identifier for the appointment. |
visit-summary | String | Conditional | Written summary of the appointment. Required if summary-files and summary-note are not provided. |
summary-files | File | Conditional | File attachments (PDF, image, etc.). Required when summary-note is present. |
summary-note | String | Conditional | Supplementary note. Required when summary-files is present. |
discount-type | Enum | Conditional | amount or percentage . Required when discount-amount is present. |
discount-amount | Double | Conditional | Value of the discount. Required when discount-type is present. |
charge-info~{n} | String | Yes (per item) | Description of additional charge. |
charge-price~{n} | Double | Yes (per item) | Unit price of additional charge. |
charge-quantity~{n} | Integer | Yes (per item) | Quantity of additional charge. |
document-files~{n} | File | Yes (per item) | File attachments for each document. |
document-type~{n} | Enum | Yes (per item) | One of: prescriptions , medical-report , medical-imaging , lab-tests-result , financial-docs , referral . |
document-note~{n} | String | No | Optional note related to the document. |
Errors
Code | Description |
---|---|
APPOINTMENT_CHANGED | Appointment state has changed and cannot accept submission. |
DOCTOR_FEE_IS_HIGHER_THAN_LIMITS | Submitted fee exceeds allowed maximum. |
NEGATIVE_TOTAL | Resulting total charge is invalid (below 0). |
FIELDS_VALIDATION_ERROR | Missing or incorrectly formatted fields. |
WRONG_DATA | The request contains invalid or unsupported values. |