openapi: 3.0.3 info: title: MS-HC description: '' version: 1.0.0 servers: - url: 'https://dev.ms-hotel.net' paths: /api/admissions/all: post: summary: 'Lister les admissions' operationId: listerLesAdmissions description: 'Permet de récupérer la liste des admissions' parameters: - in: query name: patient_id description: 'ID du patient.' example: 1 required: false schema: type: integer description: 'ID du patient.' example: 1 nullable: false - in: query name: doctor_id description: 'ID du médecin.' example: 2 required: false schema: type: integer description: 'ID du médecin.' example: 2 nullable: false - in: query name: medical_page_id description: 'ID de la consultation.' example: 5 required: false schema: type: integer description: 'ID de la consultation.' example: 5 nullable: false - in: query name: status description: 'Statut admission (active, discharged, transferred).' example: active required: false schema: type: string description: 'Statut admission (active, discharged, transferred).' example: active nullable: false - in: query name: room_number description: 'Numéro de chambre.' example: A12 required: false schema: type: string description: 'Numéro de chambre.' example: A12 nullable: false - in: query name: start_date description: 'date Date début (YYYY-MM-DD).' example: '2026-01-01' required: false schema: type: string description: 'date Date début (YYYY-MM-DD).' example: '2026-01-01' nullable: false - in: query name: end_date description: 'date Date fin (YYYY-MM-DD).' example: '2026-12-31' required: false schema: type: string description: 'date Date fin (YYYY-MM-DD).' example: '2026-12-31' nullable: false - in: query name: filter_value description: 'Recherche globale.' example: sed required: false schema: type: string description: 'Recherche globale.' example: sed nullable: false - in: query name: trashed description: 'Inclure supprimés.' example: false required: false schema: type: boolean description: 'Inclure supprimés.' example: false nullable: false responses: { } tags: - Admissions requestBody: required: false content: application/json: schema: type: object properties: patient_id: type: integer description: '' example: 18 nullable: true doctor_id: type: integer description: '' example: 7 nullable: true medical_page_id: type: integer description: '' example: 19 nullable: true idbed: type: integer description: '' example: 8 nullable: true status: type: string description: '' example: transferred nullable: true enum: - active - discharged - transferred room_number: type: string description: '' example: sunt nullable: true diagnosis_summary: type: string description: '' example: dolorem nullable: true treatment_plan: type: string description: '' example: architecto nullable: true allergies: type: string description: '' example: eius nullable: true emergency_contact: type: string description: '' example: ipsam nullable: true start_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true end_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true filter_value: type: string description: '' example: commodi nullable: true trashed: type: boolean description: '' example: false nullable: true page_items: type: integer description: '' example: 9 nullable: true nbre_items: type: integer description: 'Le champ value doit être au moins 1. Le champ value ne peut être supérieur à 1000.' example: 9 nullable: true /api/admissions: post: summary: 'Créer une admission' operationId: crerUneAdmission description: "Permet d'enregistrer une nouvelle hospitalisation." parameters: [] responses: { } tags: - Admissions requestBody: required: true content: application/json: schema: type: object properties: patient_id: type: integer description: 'ID du patient.' example: 1 nullable: false doctor_id: type: integer description: 'ID du médecin.' example: 2 nullable: false medical_page_id: type: integer description: 'ID de la consultation.' example: 5 nullable: false idbed: type: integer description: 'The id of an existing record in the beds table.' example: 18 nullable: true admitted_at: type: datetime description: "Date d'entrée." example: '2026-05-05 10:00:00' nullable: false discharged_at: type: datetime description: 'Date de sortie.' example: '2026-05-10 12:00:00' nullable: true notes: type: string description: 'Notes complémentaires.' example: sint nullable: true room_number: type: string description: 'Numéro de chambre.' example: A12 nullable: true status: type: string description: 'Statut (active, discharged, transferred).' example: active nullable: true diagnosis_summary: type: string description: '' example: consequuntur nullable: true treatment_plan: type: string description: '' example: dolor nullable: true allergies: type: string description: '' example: ratione nullable: true emergency_contact: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: wpvmhdflehdnoybtjbe nullable: true required: - patient_id - doctor_id - medical_page_id - admitted_at '/api/admissions/{admission_id}': get: summary: 'Afficher une admission' operationId: afficherUneAdmission description: "Retourne les détails d'une admission." parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/admissions/1 could not be found.' properties: message: type: string example: 'The route api/admissions/1 could not be found.' tags: - Admissions put: summary: 'Modifier une admission' operationId: modifierUneAdmission description: 'Tous les champs sont modifiables' parameters: [] responses: { } tags: - Admissions requestBody: required: false content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 12 nullable: true doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 3 nullable: true medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 19 nullable: true room_number: type: string description: 'Le champ value ne peut contenir plus de 50 caractères.' example: uhaqa nullable: true idbed: type: integer description: 'The id of an existing record in the beds table.' example: 1 nullable: true admitted_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true discharged_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true status: type: string description: '' example: discharged nullable: true enum: - active - discharged - transferred notes: type: string description: '' example: aut nullable: true diagnosis_summary: type: string description: '' example: facere nullable: true treatment_plan: type: string description: '' example: sed nullable: true allergies: type: string description: '' example: sit nullable: true emergency_contact: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: fdrh nullable: true parameters: - in: path name: admission_id description: 'The ID of the admission.' example: 1 required: true schema: type: integer - in: path name: admission description: "ID de l'admission." example: 1 required: true schema: type: integer /api/admissions/trash: post: summary: 'Mettre en corbeille' operationId: mettreEnCorbeille description: 'Body : ids[]' parameters: [] responses: { } tags: - Admissions requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the admissions table.' example: - 18 items: type: integer /api/admissions/restore: post: summary: Restaurer operationId: restaurer description: 'Body : ids[]' parameters: [] responses: { } tags: - Admissions requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the admissions table.' example: - 1 items: type: integer /api/login: post: summary: 'Fonction permettant à un utilisateur déjà inscrit de se connecter' operationId: fonctionPermettantUnUtilisateurDjInscritDeSeConnecter description: '' parameters: [] responses: { } tags: - Authentification requestBody: required: true content: application/json: schema: type: object properties: username: type: string description: '' example: ipsam nullable: false password: type: string description: '' example: 'SwB.Uh:x.hxxh&"8,' nullable: false device_key: type: string description: '' example: qui nullable: true required: - username - password security: [] /api/logout: post: summary: 'Fonction permettant à un utilisateur connecté de se déconnecter' operationId: fonctionPermettantUnUtilisateurConnectDeSeDconnecter description: '' parameters: [] responses: { } tags: - Authentification /api/salaries-advances/all: post: summary: 'Afficher la liste filtrée des avances sur salaire' operationId: afficherLaListeFiltreDesAvancesSurSalaire description: '' parameters: [] responses: { } tags: - 'Avance sur salaire / Salary advance' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: '' example: 11 nullable: true nbre_items: type: integer description: '' example: 11 nullable: true filter_value: type: string description: '' example: rerum nullable: true trashed: type: boolean description: '' example: true nullable: true user_id: type: integer description: 'The id of an existing record in the users table.' example: 9 nullable: true user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 4 nullable: true date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true /api/salaries-advances: post: summary: 'Show the form for creating a new resource.' operationId: showTheFormForCreatingANewResource description: '' parameters: [] responses: { } tags: - 'Avance sur salaire / Salary advance' requestBody: required: true content: application/json: schema: type: object properties: salary_advances: type: array description: '' example: - [] items: type: object properties: user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 5 nullable: false amount: type: string description: '' example: provident nullable: false reason: type: string description: '' example: incidunt nullable: false required: - user_approve_id - amount - reason required: - salary_advances '/api/salaries-advances/{salary_advance_id}': get: summary: 'Afficher une retenue sur salaire spécifique' operationId: afficherUneRetenueSurSalaireSpcifique description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/salaries-advances/porro could not be found.' properties: message: type: string example: 'The route api/salaries-advances/porro could not be found.' tags: - 'Avance sur salaire / Salary advance' put: summary: 'Mettre à jour une retenue sur salaire spécifique' operationId: mettreJourUneRetenueSurSalaireSpcifique description: '' parameters: [] responses: { } tags: - 'Avance sur salaire / Salary advance' requestBody: required: false content: application/json: schema: type: object properties: user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 5 nullable: true amount: type: string description: '' example: null nullable: true status: type: string description: '' example: pending_approval nullable: true enum: - pending_approval - in_progress - approved - rejected reason: type: string description: '' example: qui nullable: true comments: type: string description: '' example: ea nullable: true parameters: - in: path name: salary_advance_id description: 'The ID of the salary advance.' example: porro required: true schema: type: string /api/salaries-advances/trash: post: summary: 'Archiver (soft delete) les avances sur salaire spécifiées.' operationId: archiversoftDeleteLesAvancesSurSalaireSpcifies description: '' parameters: [] responses: { } tags: - 'Avance sur salaire / Salary advance' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: '' example: - 1 items: type: integer required: - ids /api/salaries-advances/restore: post: summary: 'Restaurer les avances sur salaire archivées.' operationId: restaurerLesAvancesSurSalaireArchives description: '' parameters: [] responses: { } tags: - 'Avance sur salaire / Salary advance' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: '' example: - 20 items: type: integer required: - ids /api/warnings/all: post: summary: 'Lister les avertissements' operationId: listerLesAvertissements description: '' parameters: [] responses: { } tags: - Avertissements requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 45 nullable: true nbre_items: type: integer description: '' example: 10 nullable: true user_id: type: integer description: 'The id of an existing record in the users table.' example: 10 nullable: true date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: ymkqjdgfzjmuxkpanovt nullable: true /api/warnings: post: summary: 'Ajouter un ou plusieurs avertissements' operationId: ajouterUnOuPlusieursAvertissements description: '' parameters: [] responses: { } tags: - Avertissements requestBody: required: true content: application/json: schema: type: object properties: warnings: type: array description: '' example: - [] items: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 8 nullable: false reason: type: string description: '' example: veniam nullable: false date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: false required: - user_id - reason - date required: - warnings '/api/warnings/{warning_id}': get: summary: "Afficher les détails d'un avertissement" operationId: afficherLesDtailsDunAvertissement description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/warnings/8 could not be found.' properties: message: type: string example: 'The route api/warnings/8 could not be found.' tags: - Avertissements put: summary: "Modifier les détails d'un avertissement" operationId: modifierLesDtailsDunAvertissement description: '' parameters: [] responses: { } tags: - Avertissements requestBody: required: false content: application/json: schema: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 20 nullable: true date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true page_items: type: integer description: '' example: 17 nullable: true nbre_items: type: integer description: '' example: 15 nullable: true filter_value: type: string description: '' example: et nullable: true parameters: - in: path name: warning_id description: 'The ID of the warning.' example: 8 required: true schema: type: integer /api/warnings/trash: post: summary: 'Mettre un ou plusieurs avertissements en corbeille (soft delete)' operationId: mettreUnOuPlusieursAvertissementsEnCorbeillesoftDelete description: '' parameters: [] responses: { } tags: - Avertissements requestBody: required: true content: application/json: schema: type: object properties: warning_ids: type: array description: 'The id of an existing record in the warnings table.' example: - 9 items: type: integer required: - warning_ids /api/warnings/restore: post: summary: 'Restaurer un ou plusieurs avertissements de la corbeille' operationId: restaurerUnOuPlusieursAvertissementsDeLaCorbeille description: '' parameters: [] responses: { } tags: - Avertissements requestBody: required: true content: application/json: schema: type: object properties: warning_ids: type: array description: 'The id of an existing record in the warnings table.' example: - 5 items: type: integer required: - warning_ids /api/warnings/destroy: post: summary: 'Supprimer définitivement un ou plusieurs avertissements' operationId: supprimerDfinitivementUnOuPlusieursAvertissements description: '' parameters: [] responses: { } tags: - Avertissements requestBody: required: true content: application/json: schema: type: object properties: warning_ids: type: array description: 'The id of an existing record in the warnings table.' example: - 5 items: type: integer required: - warning_ids /api/purchase-orders/all: post: summary: "Afficher une liste filtrée des bons d'achat" operationId: afficherUneListeFiltreDesBonsDachat description: '' parameters: [] responses: { } tags: - "Bons d'achats" requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 51 nullable: true nbre_items: type: integer description: '' example: 17 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: nlbpmssqacagvfv nullable: true status: type: string description: '' example: approved nullable: true enum: - requesting_price - pending_approval - approved - purchase_order - paid - delivered - cancelled priority: type: string description: '' example: low nullable: true enum: - low - medium - high - urgent supplier_id: type: integer description: 'The id of an existing record in the users table.' example: 15 nullable: true responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 19 nullable: true medication_ids: type: array description: 'The id of an existing record in the medications table.' example: - 8 items: type: integer trashed: type: boolean description: '' example: true nullable: true /api/purchase-orders: post: summary: "Enregistrer un bon d'achat" operationId: enregistrerUnBonDachat description: '' parameters: [] responses: { } tags: - "Bons d'achats" requestBody: required: true content: application/json: schema: type: object properties: supplier_id: type: integer description: 'The id of an existing record in the users table.' example: 7 nullable: false responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 11 nullable: false description: type: string description: '' example: 'Molestias quas in amet amet voluptas.' nullable: true status: type: string description: '' example: cancelled nullable: true enum: - requesting_price - pending_approval - approved - purchase_order - paid - delivered - cancelled priority: type: string description: '' example: high nullable: false enum: - low - medium - high - urgent quotation_file: type: string description: '' example: velit nullable: true medications: type: array description: '' example: - [] items: type: object properties: id: type: integer description: 'The id of an existing record in the medications table.' example: 12 nullable: false unit_price: type: number description: 'Le champ value doit être au moins 0.' example: 47 nullable: false quantity: type: integer description: 'Le champ value doit être au moins 1.' example: 34 nullable: false required: - id - unit_price - quantity required: - supplier_id - responsible_id - priority - medications '/api/purchase-orders/{purchase_voucher}': get: summary: "Afficher un bon d'achat spécifique" operationId: afficherUnBonDachatSpcifique description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/purchase-orders/1 could not be found.' properties: message: type: string example: 'The route api/purchase-orders/1 could not be found.' tags: - "Bons d'achats" put: summary: 'Update the specified resource in storage.' operationId: updateTheSpecifiedResourceInStorage description: '' parameters: [] responses: { } tags: - "Bons d'achats" requestBody: required: false content: application/json: schema: type: object properties: supplier_id: type: integer description: 'The id of an existing record in the users table.' example: 6 nullable: true responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 7 nullable: true description: type: string description: '' example: 'Possimus nostrum numquam voluptas totam.' nullable: true status: type: string description: '' example: pending_approval nullable: true enum: - requesting_price - pending_approval - approved - purchase_order - paid - delivered - cancelled priority: type: string description: '' example: medium nullable: true enum: - low - medium - high - urgent quotation_file: type: string description: '' example: et nullable: true medications: type: array description: '' example: null items: type: object nullable: true properties: id: type: integer description: 'The id of an existing record in the medications table.' example: 20 nullable: false unit_price: type: number description: 'Le champ value doit être au moins 0.' example: 30 nullable: false quantity: type: integer description: 'Le champ value doit être au moins 1.' example: 42 nullable: false required: - id - unit_price - quantity parameters: - in: path name: purchase_voucher description: '' example: 1 required: true schema: type: integer /api/purchase-orders/trash: post: summary: "Fonction pour le multiple archivage des bonds d'achat" operationId: fonctionPourLeMultipleArchivageDesBondsDachat description: '' parameters: [] responses: { } tags: - "Bons d'achats" requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the purchase_orders table.' example: - 7 items: type: integer /api/purchase-orders/restore: post: summary: "Fonction de restauration multiples des bonds d'achat" operationId: fonctionDeRestaurationMultiplesDesBondsDachat description: '' parameters: [] responses: { } tags: - "Bons d'achats" requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the purchase_orders table.' example: - 6 items: type: integer /api/invoices/all: post: summary: 'Lister les factures' operationId: listerLesFactures description: '' parameters: [] responses: { } tags: - 'Caisse / Facturation' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 4 nullable: true nbre_items: type: integer description: '' example: 2 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: bpjtysa nullable: true patient_id: type: integer description: 'The id of an existing record in the users table.' example: 14 nullable: true cashier_id: type: integer description: 'The id of an existing record in the users table.' example: 7 nullable: true status: type: string description: '' example: expedita nullable: true payment_mode: type: string description: '' example: aliquid nullable: true date_from: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true date_to: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true trashed: type: boolean description: '' example: false nullable: true /api/invoices: post: summary: 'Créer une facture avec ses lignes' operationId: crerUneFactureAvecSesLignes description: '' parameters: [] responses: { } tags: - 'Caisse / Facturation' requestBody: required: true content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 8 nullable: false medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 18 nullable: true discount: type: number description: 'Le champ value doit être au moins 0.' example: 79 nullable: true payment_mode: type: string description: '' example: inventore nullable: true notes: type: string description: '' example: autem nullable: true mm_operator: type: string description: '' example: iusto nullable: true mm_payer_number: type: string description: '' example: et nullable: true mm_transaction_ref: type: string description: '' example: necessitatibus nullable: true mm_payment_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true insurance_name: type: string description: '' example: voluptatem nullable: true insurance_ref: type: string description: '' example: aut nullable: true insurance_amount: type: number description: 'Le champ value doit être au moins 0.' example: 82 nullable: true patient_amount: type: number description: 'Le champ value doit être au moins 0.' example: 47 nullable: true items: type: array description: 'Le champ value doit contenir au moins 1 éléments.' example: - [] items: type: object properties: item_type: type: string description: '' example: distinctio nullable: false label: type: string description: '' example: quasi nullable: false quantity: type: integer description: 'Le champ value doit être au moins 1.' example: 57 nullable: false unit_price: type: number description: 'Le champ value doit être au moins 0.' example: 6 nullable: false lab_request_id: type: integer description: 'The id of an existing record in the lab_requests table.' example: 2 nullable: true nursing_act_id: type: integer description: 'The id of an existing record in the nursing_acts table.' example: 15 nullable: true medication_id: type: integer description: 'The id of an existing record in the medications table.' example: 10 nullable: true prescription_id: type: integer description: 'The id of an existing record in the prescriptions table.' example: 6 nullable: true required: - item_type - label - quantity - unit_price required: - patient_id - items '/api/invoices/{invoice_id}': get: summary: 'Afficher une facture' operationId: afficherUneFacture description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/invoices/7 could not be found.' properties: message: type: string example: 'The route api/invoices/7 could not be found.' tags: - 'Caisse / Facturation' put: summary: 'Mettre à jour une facture (paiement complémentaire)' operationId: mettreJourUneFacturepaiementComplmentaire description: '' parameters: [] responses: { } tags: - 'Caisse / Facturation' requestBody: required: false content: application/json: schema: type: object properties: amount_paid: type: number description: 'Le champ value doit être au moins 0.' example: 33 nullable: true payment_mode: type: string description: '' example: dicta nullable: true discount: type: number description: 'Le champ value doit être au moins 0.' example: 37 nullable: true notes: type: string description: '' example: veritatis nullable: true mm_operator: type: string description: '' example: ipsa nullable: true mm_payer_number: type: string description: '' example: praesentium nullable: true mm_transaction_ref: type: string description: '' example: laborum nullable: true mm_payment_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true insurance_name: type: string description: '' example: omnis nullable: true insurance_ref: type: string description: '' example: expedita nullable: true insurance_amount: type: number description: 'Le champ value doit être au moins 0.' example: 90 nullable: true patient_amount: type: number description: 'Le champ value doit être au moins 0.' example: 26 nullable: true parameters: - in: path name: invoice_id description: 'The ID of the invoice.' example: 7 required: true schema: type: integer '/api/invoices/{invoice_id}/cancel': post: summary: 'Annuler une facture (avec traçabilité)' operationId: annulerUneFactureavecTraabilit description: '' parameters: [] responses: { } tags: - 'Caisse / Facturation' parameters: - in: path name: invoice_id description: 'The ID of the invoice.' example: 10 required: true schema: type: integer /api/invoices/trash: post: summary: 'Archiver des factures' operationId: archiverDesFactures description: '' parameters: [] responses: { } tags: - 'Caisse / Facturation' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the invoices table.' example: - 18 items: type: integer /api/invoices/restore: post: summary: 'Restaurer des factures' operationId: restaurerDesFactures description: '' parameters: [] responses: { } tags: - 'Caisse / Facturation' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the invoices table.' example: - 13 items: type: integer /api/medical-books/all: post: summary: 'Lister les carnets médicaux' operationId: listerLesCarnetsMdicaux description: '' parameters: [] responses: { } tags: - 'Carnet Médical' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 23 nullable: true nbre_items: type: integer description: '' example: 5 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: d nullable: true responsible_doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 9 nullable: true health_center_id: type: integer description: '' example: 18 nullable: true patient_id: type: integer description: 'The id of an existing record in the users table.' example: 4 nullable: true trashed: type: boolean description: '' example: true nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true ckd_stage: type: string description: '' example: officia nullable: true dialysis_type: type: string description: '' example: peritoneal nullable: true enum: - hemodialysis - peritoneal dialysis_center: type: string description: '' example: quis nullable: true current_doctor_name: type: string description: '' example: ut nullable: true ckd_diagnosis_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true blood_type: type: string description: '' example: culpa nullable: true status: type: string description: '' example: blanditiis nullable: true /api/medical-books: post: summary: 'Ajouter un carnet médical' operationId: ajouterUnCarnetMdical description: '' parameters: [] responses: { } tags: - 'Carnet Médical' requestBody: required: true content: multipart/form-data: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 6 nullable: false responsible_doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 20 nullable: false health_center_id: type: integer description: 'The id of an existing record in the health_centers table.' example: 7 nullable: true blood_type: type: string description: '' example: A- nullable: true enum: - A+ - A- - B+ - B- - AB+ - AB- - O+ - O- known_allergies: type: string description: '' example: eum nullable: true chronic_diseases: type: string description: '' example: excepturi nullable: true observation: type: string description: '' example: quod nullable: true status: type: string description: '' example: undone nullable: true enum: - pending - validated - rejected - done - undone current_doctor_name: type: string description: '' example: earum nullable: true current_doctor_phone: type: string description: '' example: commodi nullable: true current_doctor_address: type: string description: '' example: doloremque nullable: true medical_history: type: string description: '' example: eveniet nullable: true current_treatments: type: string description: '' example: ut nullable: true known_kidney_diseases: type: string description: '' example: unde nullable: true autoimmune_or_infectious_diseases: type: string description: '' example: consequatur nullable: true allergies: type: string description: '' example: autem nullable: true ckd_stage: type: string description: '' example: soluta nullable: true ckd_diagnosis_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true ckd_etiology: type: string description: '' example: illo nullable: true recent_biological_tests: type: string description: '' example: tenetur nullable: true renal_imaging_file: type: string format: binary description: 'Must be a file. Le champ value ne peut être supérieur à 2048 kilobytes.' nullable: true dry_weight: type: number description: '' example: 8940.94399 nullable: true dialysis_indicated: type: boolean description: '' example: false nullable: true dialysis_type: type: string description: '' example: hemodialysis nullable: true enum: - hemodialysis - peritoneal dialysis_center: type: string description: '' example: est nullable: true dialysis_frequency: type: string description: '' example: omnis nullable: true dialysis_complications: type: string description: '' example: non nullable: true required: - patient_id - responsible_doctor_id '/api/medical-books/{medical_book}': get: summary: "Afficher les infos d'un carnet médical" operationId: afficherLesInfosDunCarnetMdical description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/medical-books/1 could not be found.' properties: message: type: string example: 'The route api/medical-books/1 could not be found.' tags: - 'Carnet Médical' put: summary: 'Modifier un carnet médical' operationId: modifierUnCarnetMdical description: '' parameters: [] responses: { } tags: - 'Carnet Médical' requestBody: required: false content: multipart/form-data: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 1 nullable: true responsible_doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 10 nullable: true health_center_id: type: integer description: 'The id of an existing record in the health_centers table.' example: 1 nullable: true blood_type: type: string description: '' example: AB+ nullable: true enum: - A+ - A- - B+ - B- - AB+ - AB- - O+ - O- known_allergies: type: string description: '' example: nisi nullable: true chronic_diseases: type: string description: '' example: sed nullable: true observation: type: string description: '' example: aut nullable: true status: type: string description: '' example: done nullable: true enum: - pending - validated - rejected - done - undone current_doctor_name: type: string description: '' example: ex nullable: true current_doctor_phone: type: string description: '' example: dolorem nullable: true current_doctor_address: type: string description: '' example: deleniti nullable: true medical_history: type: string description: '' example: nisi nullable: true current_treatments: type: string description: '' example: provident nullable: true known_kidney_diseases: type: string description: '' example: cum nullable: true autoimmune_or_infectious_diseases: type: string description: '' example: est nullable: true allergies: type: string description: '' example: ipsum nullable: true ckd_stage: type: string description: '' example: tempora nullable: true ckd_diagnosis_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true ckd_etiology: type: string description: '' example: aut nullable: true recent_biological_tests: type: string description: '' example: rem nullable: true renal_imaging_file: type: string format: binary description: 'Must be a file. Le champ value ne peut être supérieur à 2048 kilobytes.' nullable: true dry_weight: type: number description: '' example: 79.0 nullable: true dialysis_indicated: type: boolean description: '' example: true nullable: true dialysis_type: type: string description: '' example: peritoneal nullable: true enum: - hemodialysis - peritoneal dialysis_center: type: string description: '' example: quae nullable: true dialysis_frequency: type: string description: '' example: dolores nullable: true dialysis_complications: type: string description: '' example: voluptas nullable: true parameters: - in: path name: medical_book description: '' example: 1 required: true schema: type: integer /api/medical-books/trash: post: summary: 'Archiver plusieurs medical_books' operationId: archiverPlusieursMedicalBooks description: '' parameters: [] responses: { } tags: - 'Carnet Médical' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medical_books table.' example: - 15 items: type: integer required: - ids /api/medical-books/restore: post: summary: 'Restaurer plusieurs medical_books' operationId: restaurerPlusieursMedicalBooks description: '' parameters: [] responses: { } tags: - 'Carnet Médical' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medical_books table.' example: - 20 items: type: integer required: - ids /api/nursing-act-catalogs/all: post: summary: '' operationId: postApiNursingActCatalogsAll description: '' parameters: [] responses: { } tags: - 'Catalogue Actes Infirmiers' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 19 nullable: true nbre_items: type: integer description: '' example: 6 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: ehhtcdqqktauxdlamdeh nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true type: type: string description: '' example: et nullable: true is_active: type: boolean description: '' example: true nullable: true trashed: type: boolean description: '' example: false nullable: true /api/nursing-act-catalogs: post: summary: '' operationId: postApiNursingActCatalogs description: '' parameters: [] responses: { } tags: - 'Catalogue Actes Infirmiers' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: ddmr nullable: false type: type: string description: '' example: dolores nullable: false description: type: string description: '' example: 'Dicta quia qui qui sit.' nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 88 nullable: false is_active: type: boolean description: '' example: false nullable: true required: - name - type - price '/api/nursing-act-catalogs/{nursing_act_catalog}': get: summary: '' operationId: getApiNursingActCatalogsNursing_act_catalog description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/nursing-act-catalogs/1 could not be found.' properties: message: type: string example: 'The route api/nursing-act-catalogs/1 could not be found.' tags: - 'Catalogue Actes Infirmiers' put: summary: '' operationId: putApiNursingActCatalogsNursing_act_catalog description: '' parameters: [] responses: { } tags: - 'Catalogue Actes Infirmiers' requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: umzieohdxmhwyvgbmynvkr nullable: true type: type: string description: '' example: quibusdam nullable: true description: type: string description: '' example: 'Velit non facere tenetur porro mollitia quis voluptatem incidunt.' nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 42 nullable: true is_active: type: boolean description: '' example: false nullable: true parameters: - in: path name: nursing_act_catalog description: '' example: 1 required: true schema: type: integer /api/nursing-act-catalogs/trash: post: summary: '' operationId: postApiNursingActCatalogsTrash description: '' parameters: [] responses: { } tags: - 'Catalogue Actes Infirmiers' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the nursing_act_catalogs table.' example: - 9 items: type: integer /api/nursing-act-catalogs/restore: post: summary: '' operationId: postApiNursingActCatalogsRestore description: '' parameters: [] responses: { } tags: - 'Catalogue Actes Infirmiers' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the nursing_act_catalogs table.' example: - 18 items: type: integer /api/lab-exam-catalogs/all: post: summary: '' operationId: postApiLabExamCatalogsAll description: '' parameters: [] responses: { } tags: - 'Catalogue Examens Laboratoire' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 14 nullable: true nbre_items: type: integer description: '' example: 7 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: axjhppusyffbfvkni nullable: true type: type: string description: '' example: esse nullable: true start_date: type: string description: 'Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true is_active: type: boolean description: '' example: false nullable: true trashed: type: boolean description: '' example: true nullable: true /api/lab-exam-catalogs: post: summary: '' operationId: postApiLabExamCatalogs description: '' parameters: [] responses: { } tags: - 'Catalogue Examens Laboratoire' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: bhtcm nullable: false code: type: string description: 'Le champ value ne peut contenir plus de 50 caractères.' example: idirrwgyzllfsmtzlznqvppzb nullable: true type: type: string description: '' example: dolor nullable: false description: type: string description: '' example: 'Eos harum ea dolores repellat fuga ducimus voluptatem.' nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 54 nullable: false turnaround_hours: type: integer description: 'Le champ value doit être au moins 0.' example: 35 nullable: true preparation_instructions: type: string description: '' example: veritatis nullable: true sample_required: type: string description: '' example: et nullable: true is_active: type: boolean description: '' example: false nullable: true required: - name - type - price '/api/lab-exam-catalogs/{lab_exam_catalog}': get: summary: '' operationId: getApiLabExamCatalogsLab_exam_catalog description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/lab-exam-catalogs/1 could not be found.' properties: message: type: string example: 'The route api/lab-exam-catalogs/1 could not be found.' tags: - 'Catalogue Examens Laboratoire' put: summary: '' operationId: putApiLabExamCatalogsLab_exam_catalog description: '' parameters: [] responses: { } tags: - 'Catalogue Examens Laboratoire' requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: a nullable: true type: type: string description: '' example: autem nullable: true description: type: string description: '' example: 'Provident molestiae tenetur doloribus ipsam rem.' nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 18 nullable: true turnaround_hours: type: integer description: 'Le champ value doit être au moins 0.' example: 42 nullable: true preparation_instructions: type: string description: '' example: est nullable: true sample_required: type: string description: '' example: nostrum nullable: true is_active: type: boolean description: '' example: false nullable: true parameters: - in: path name: lab_exam_catalog description: '' example: 1 required: true schema: type: integer /api/lab-exam-catalogs/trash: post: summary: '' operationId: postApiLabExamCatalogsTrash description: '' parameters: [] responses: { } tags: - 'Catalogue Examens Laboratoire' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the lab_exam_catalogs table.' example: - 5 items: type: integer /api/lab-exam-catalogs/restore: post: summary: '' operationId: postApiLabExamCatalogsRestore description: '' parameters: [] responses: { } tags: - 'Catalogue Examens Laboratoire' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the lab_exam_catalogs table.' example: - 5 items: type: integer /api/health-centers/all: post: summary: 'Lister les centres de santé' operationId: listerLesCentresDeSant description: '' parameters: [] responses: { } tags: - 'Centres de santé' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 63 nullable: true nbre_items: type: integer description: '' example: 4 nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: ekccypaahcxt nullable: true responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 14 nullable: true trashed: type: boolean description: '' example: true nullable: true /api/health-centers: post: summary: 'Ajouter un centre de santé' operationId: ajouterUnCentreDeSant description: '' parameters: [] responses: { } tags: - 'Centres de santé' requestBody: required: true content: application/json: schema: type: object properties: responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 14 nullable: false name: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: dqzrrznnpteudgdy nullable: false code: type: string description: 'Le champ value ne peut contenir plus de 10 caractères.' example: xplecd nullable: true description: type: string description: '' example: 'Consequatur excepturi voluptas est.' nullable: true address: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: azbvhihqktiwgj nullable: true city: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: ydghbgdcwchddcpnjv nullable: true country: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: mppjfqsxcalntavifabzowfq nullable: true phone: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: ttcdtcwqmrkkaiwzppeksi nullable: false logo: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: lyxlmalmxsxhibpem nullable: true email: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: walsh.kiera@example.net nullable: true website: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: ezryhruyumyijnidwzbl nullable: true required: - responsible_id - name - phone '/api/health-centers/{health_center}': get: summary: "Afficher les informations d'un centre de santé" operationId: afficherLesInformationsDunCentreDeSant description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/health-centers/1 could not be found.' properties: message: type: string example: 'The route api/health-centers/1 could not be found.' tags: - 'Centres de santé' put: summary: "Modifier les informations d'un centre de santé" operationId: modifierLesInformationsDunCentreDeSant description: '' parameters: [] responses: { } tags: - 'Centres de santé' requestBody: required: false content: application/json: schema: type: object properties: responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 15 nullable: true name: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: leyckuyoxaqxssotis nullable: true code: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: wvywxpskzwoci nullable: true description: type: string description: '' example: 'Hic non eos necessitatibus est.' nullable: true address: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: slhszsoyxjxidbvyypo nullable: true city: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: u nullable: true country: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: g nullable: true phone: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: ulypaecelzvebq nullable: true logo: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: qryizwvhylyatqidovfo nullable: true email: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: lkihn@example.net nullable: true website: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: sehpmpdldqj nullable: true parameters: - in: path name: health_center description: '' example: 1 required: true schema: type: integer /api/health-centers/trash: post: summary: 'Archiver plusieurs health_centers' operationId: archiverPlusieursHealthCenters description: '' parameters: [] responses: { } tags: - 'Centres de santé' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the health_centers table.' example: - 8 items: type: integer required: - ids /api/health-centers/restore: post: summary: 'Restaurer plusieurs health_centers' operationId: restaurerPlusieursHealthCenters description: '' parameters: [] responses: { } tags: - 'Centres de santé' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the health_centers table.' example: - 2 items: type: integer required: - ids /api/chat/rooms/all: post: summary: 'Lister les discussions (privées et en groupe)' operationId: listerLesDiscussionsprivesEtEnGroupe description: '' parameters: [] responses: { } tags: - Chat requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 55 nullable: true nbre_items: type: integer description: '' example: 8 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: zbqebooagluidbswtf nullable: true is_group: type: boolean description: '' example: true nullable: true /api/chat/rooms: post: summary: 'Démarrer une discussion' operationId: dmarrerUneDiscussion description: '' parameters: [] responses: { } tags: - Chat requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: twxq nullable: true photo: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: jcftaasqkg nullable: true participants: type: array description: 'The id of an existing record in the users table.' example: - 17 items: type: integer required: - participants '/api/chat/rooms/{message_room}': get: summary: "Afficher les infos d'une discussion" operationId: afficherLesInfosDuneDiscussion description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/chat/rooms/20 could not be found.' properties: message: type: string example: 'The route api/chat/rooms/20 could not be found.' tags: - Chat put: summary: 'Modifier une discussion' operationId: modifierUneDiscussion description: '' parameters: [] responses: { } tags: - Chat requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: rrboduzlhlm nullable: true photo: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: cs nullable: true participants: type: array description: 'The id of an existing record in the users table.' example: - 12 items: type: integer nullable: true parameters: - in: path name: message_room description: '' example: 20 required: true schema: type: integer /api/chat/messages/all: post: summary: 'Lister les messages' operationId: listerLesMessages description: '' parameters: [] responses: { } tags: - Chat requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 44 nullable: true nbre_items: type: integer description: '' example: 11 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: fofuznwcomctqdiu nullable: true message_room_id: type: integer description: 'The id of an existing record in the message_rooms table.' example: 4 nullable: true user_id: type: integer description: 'The id of an existing record in the users table.' example: 9 nullable: true /api/chat/messages: post: summary: 'Ajouter un message' operationId: ajouterUnMessage description: '' parameters: [] responses: { } tags: - Chat requestBody: required: true content: application/json: schema: type: object properties: message_room_id: type: integer description: 'The id of an existing record in the message_rooms table.' example: 20 nullable: false body: type: string description: '' example: expedita nullable: false required: - message_room_id - body '/api/chat/messages/{message_id}': get: summary: 'Afficher un message' operationId: afficherUnMessage description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/chat/messages/13 could not be found.' properties: message: type: string example: 'The route api/chat/messages/13 could not be found.' tags: - Chat put: summary: 'Modifier un message' operationId: modifierUnMessage description: '' parameters: [] responses: { } tags: - Chat requestBody: required: true content: application/json: schema: type: object properties: body: type: string description: '' example: enim nullable: false required: - body parameters: - in: path name: message_id description: 'The ID of the message.' example: 13 required: true schema: type: integer /api/check-ups/all: post: summary: 'Lister les checkups patients' operationId: listerLesCheckupsPatients description: '' parameters: [] responses: { } tags: - 'Checkups patients' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 33 nullable: true nbre_items: type: integer description: '' example: 7 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: uo nullable: true patient_id: type: integer description: 'The id of an existing record in the users table.' example: 17 nullable: true medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 5 nullable: true date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true alert_status: type: string description: '' example: critical nullable: true enum: - normal - warning - critical trashed: type: boolean description: '' example: false nullable: true /api/check-ups: post: summary: 'Ajouter un checkup patient' operationId: ajouterUnCheckupPatient description: '' parameters: [] responses: { } tags: - 'Checkups patients' requestBody: required: true content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 8 nullable: false medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 1 nullable: true dialysis_session_id: type: integer description: '' example: 2 nullable: true weight_kg: type: number description: '' example: 186.00594974 nullable: false blood_pressure_systolic: type: integer description: '' example: 20 nullable: true blood_pressure_diastolic: type: integer description: '' example: 18 nullable: true heart_rate: type: integer description: '' example: 17 nullable: true temperature_c: type: number description: '' example: 1692.224 nullable: true blood_glucose: type: number description: '' example: 36513.1835705 nullable: true urine_output_ml: type: integer description: '' example: 17 nullable: true spo2: type: integer description: '' example: 16 nullable: true creatinine: type: number description: '' example: 2306.6233 nullable: true urea: type: number description: '' example: 4244.5209622 nullable: true creatinine_clearance: type: number description: '' example: 41144944.6259 nullable: true potassium: type: number description: '' example: 335702.1479349 nullable: true sodium: type: number description: '' example: 30.606948 nullable: true phosphorus: type: number description: '' example: 2.364226 nullable: true calcium: type: number description: '' example: 2143.363 nullable: true hemoglobin: type: number description: '' example: 5.71 nullable: true notes: type: string description: '' example: et nullable: true date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true hour: type: string description: '' example: null nullable: true alert_status: type: string description: '' example: critical nullable: true enum: - normal - warning - critical required: - patient_id - weight_kg '/api/check-ups/{patient_check_up}': get: summary: "Afficher les infos d'un checkup patient" operationId: afficherLesInfosDunCheckupPatient description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/check-ups/1 could not be found.' properties: message: type: string example: 'The route api/check-ups/1 could not be found.' tags: - 'Checkups patients' put: summary: 'Modifier un checkup patient' operationId: modifierUnCheckupPatient description: '' parameters: [] responses: { } tags: - 'Checkups patients' requestBody: required: true content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 12 nullable: true medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 4 nullable: true dialysis_session_id: type: integer description: '' example: 9 nullable: true weight_kg: type: number description: '' example: 38093010.555087 nullable: false blood_pressure_systolic: type: integer description: '' example: 18 nullable: true blood_pressure_diastolic: type: integer description: '' example: 4 nullable: true heart_rate: type: integer description: '' example: 14 nullable: true temperature_c: type: number description: '' example: 1.1 nullable: true blood_glucose: type: number description: '' example: 387992373.05583 nullable: true urine_output_ml: type: integer description: '' example: 13 nullable: true spo2: type: integer description: '' example: 6 nullable: true creatinine: type: number description: '' example: 265.213481 nullable: true urea: type: number description: '' example: 373.599506602 nullable: true creatinine_clearance: type: number description: '' example: 63162750.39088 nullable: true potassium: type: number description: '' example: 0.32 nullable: true sodium: type: number description: '' example: 72.78 nullable: true phosphorus: type: number description: '' example: 17.57 nullable: true calcium: type: number description: '' example: 61.940901 nullable: true hemoglobin: type: number description: '' example: 98859146.0 nullable: true notes: type: string description: '' example: dolorum nullable: true date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true hour: type: string description: '' example: null nullable: true alert_status: type: string description: '' example: normal nullable: true enum: - normal - warning - critical required: - weight_kg parameters: - in: path name: patient_check_up description: '' example: 1 required: true schema: type: integer /api/check-ups/trash: post: summary: 'Archiver plusieurs patient_check_ups' operationId: archiverPlusieursPatientCheckUps description: '' parameters: [] responses: { } tags: - 'Checkups patients' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the patient_check_ups table.' example: - 2 items: type: integer required: - ids /api/check-ups/restore: post: summary: 'Restaurer plusieurs patient_check_ups' operationId: restaurerPlusieursPatientCheckUps description: '' parameters: [] responses: { } tags: - 'Checkups patients' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the patient_check_ups table.' example: - 12 items: type: integer required: - ids /api/cash-closures/all: post: summary: '' operationId: postApiCashClosuresAll description: '' parameters: [] responses: { } tags: - 'Clôture de Caisse' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 3 nullable: true nbre_items: type: integer description: '' example: 13 nullable: true cashier_id: type: integer description: 'The id of an existing record in the users table.' example: 15 nullable: true status: type: string description: '' example: closed nullable: true enum: - open - closed date_from: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true date_to: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true /api/cash-closures: post: summary: 'Créer une clôture de caisse — calcule automatiquement les totaux du jour' operationId: crerUneCltureDeCaisseCalculeAutomatiquementLesTotauxDuJour description: '' parameters: [] responses: { } tags: - 'Clôture de Caisse' requestBody: required: true content: application/json: schema: type: object properties: closure_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: false notes: type: string description: '' example: esse nullable: true required: - closure_date '/api/cash-closures/{cash_closure}': get: summary: '' operationId: getApiCashClosuresCash_closure description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/cash-closures/15 could not be found.' properties: message: type: string example: 'The route api/cash-closures/15 could not be found.' tags: - 'Clôture de Caisse' put: summary: 'Clôturer définitivement (passer à closed)' operationId: clturerDfinitivementpasserClosed description: '' parameters: [] responses: { } tags: - 'Clôture de Caisse' requestBody: required: false content: application/json: schema: type: object properties: status: type: string description: '' example: closed nullable: true enum: - open - closed notes: type: string description: '' example: unde nullable: true parameters: - in: path name: cash_closure description: '' example: 15 required: true schema: type: integer /api/contracts/all: post: summary: 'Retourne la liste des contrats avec la possibilité de filtrer et paginer les résultats.' operationId: retourneLaListeDesContratsAvecLaPossibilitDeFiltrerEtPaginerLesRsultats description: '' parameters: [] responses: { } tags: - Contrats requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: '' example: 3 nullable: true nbre_items: type: integer description: '' example: 15 nullable: true filter_value: type: string description: '' example: neque nullable: true position: type: string description: '' example: corrupti nullable: true status: type: string description: '' example: Terminated nullable: true enum: - Active - Terminated - Pending trashed: type: boolean description: '' example: true nullable: true '/api/contracts/{contract}': get: summary: 'Affiche les détails d’un contrat spécifique à partir de son identifiant.' operationId: afficheLesDtailsDunContratSpcifiquePartirDeSonIdentifiant description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/contracts/aspernatur could not be found.' properties: message: type: string example: 'The route api/contracts/aspernatur could not be found.' tags: - Contrats put: summary: 'Met à jour les informations d’un contrat donné.' operationId: metJourLesInformationsDunContratDonn description: '' parameters: [] responses: { } tags: - Contrats requestBody: required: false content: application/json: schema: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 6 nullable: true user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 9 nullable: true type: type: string description: '' example: CDI nullable: true enum: - CDD - CDI - Stage description: type: string description: '' example: 'Consequuntur provident voluptate reiciendis et minima mollitia.' nullable: true start_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true duration: type: integer description: 'Le champ value doit être au moins 1.' example: 34 nullable: true working_hours: type: string description: '' example: sit nullable: true position: type: string description: '' example: beatae nullable: true gross_salary: type: number description: 'Le champ value doit être au moins 0.' example: 7 nullable: true status: type: string description: '' example: Pending nullable: true enum: - Active - Terminated - Pending service_benefits: type: string description: '' example: perferendis nullable: true bonus: type: string description: '' example: nihil nullable: true number_days_off: type: integer description: '' example: 16 nullable: true parameters: - in: path name: contract description: 'The contract.' example: aspernatur required: true schema: type: string /api/contracts: post: summary: "Crée un nouveau contrat pour un utilisateur, après vérification d'absence de contrat actif." operationId: creUnNouveauContratPourUnUtilisateurAprsVrificationDabsenceDeContratActif description: '' parameters: [] responses: { } tags: - Contrats requestBody: required: true content: application/json: schema: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 4 nullable: false user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 14 nullable: false type: type: string description: '' example: harum nullable: false description: type: string description: '' example: 'Libero eos ipsa similique.' nullable: true start_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: false duration: type: integer description: 'Le champ value doit être au moins 1.' example: 12 nullable: true working_hours: type: string description: '' example: voluptatem nullable: false position: type: string description: '' example: aut nullable: false gross_salary: type: number description: 'Le champ value doit être au moins 0.' example: 52 nullable: false status: type: string description: '' example: Active nullable: true enum: - Active - Terminated - Pending service_benefits: type: string description: '' example: vel nullable: true bonus: type: string description: '' example: labore nullable: true number_days_off: type: integer description: '' example: 20 nullable: true required: - user_id - user_approve_id - type - start_date - working_hours - position - gross_salary /api/contracts/trash: post: summary: 'Archiver (soft delete) les contrats spécifiées.' operationId: archiversoftDeleteLesContratsSpcifies description: '' parameters: [] responses: { } tags: - Contrats requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: '' example: - 2 items: type: integer required: - ids /api/contracts/restore: post: summary: 'Restaurer les contrats archivés.' operationId: restaurerLesContratsArchivs description: '' parameters: [] responses: { } tags: - Contrats requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: '' example: - 8 items: type: integer required: - ids /api/contracts/destroy: post: summary: 'Supprimer définitivement les contrats spécifiés.' operationId: supprimerDfinitivementLesContratsSpcifis description: '' parameters: [] responses: { } tags: - Contrats requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: '' example: - 2 items: type: integer required: - ids /api/supply-demands: post: summary: "Crée une nouvelle demande d'approvisionnement." operationId: creUneNouvelleDemandeDapprovisionnement description: '' parameters: [] responses: { } tags: - "Demande d'approvisionnement | Supply demand" requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: jeenphgmubzvleamdhosbso nullable: true description: type: string description: '' example: 'Omnis veritatis itaque repellat voluptatum.' nullable: true responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 2 nullable: false status: type: string description: '' example: accepted nullable: true enum: - pending - accepted - refused priority: type: string description: '' example: medium nullable: false enum: - high - medium - low medications: type: array description: 'Le champ value doit contenir au moins 1 éléments.' example: - [] items: type: object properties: id: type: integer description: 'The id of an existing record in the medications table.' example: 19 nullable: false unit_price: type: integer description: '' example: 5 nullable: true quantity: type: integer description: 'Le champ value doit être au moins 1.' example: 42 nullable: false supplier_id: type: integer description: 'The id of an existing record in the users table.' example: 2 nullable: false required: - id - quantity - supplier_id required: - responsible_id - priority - medications /api/supply-demands/all: post: summary: "Affiche la liste paginée des demandes d'approvisionnement, avec filtres optionnels." operationId: afficheLaListePagineDesDemandesDapprovisionnementAvecFiltresOptionnels description: '' parameters: [] responses: { } tags: - "Demande d'approvisionnement | Supply demand" requestBody: required: false content: application/json: schema: type: object properties: filter_value: type: string description: '' example: dolores nullable: true responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 15 nullable: true priority: type: string description: '' example: medium nullable: true enum: - high - medium - low status: type: string description: '' example: accepted nullable: true enum: - pending - accepted - refused medication_ids: type: array description: 'The id of an existing record in the medications table.' example: - 12 items: type: integer '/api/supply-demands/{supply_demand_id}': get: summary: "Affiche les détails d'une demande d'approvisionnement spécifique." operationId: afficheLesDtailsDuneDemandeDapprovisionnementSpcifique description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/supply-demands/7 could not be found.' properties: message: type: string example: 'The route api/supply-demands/7 could not be found.' tags: - "Demande d'approvisionnement | Supply demand" put: summary: "Met à jour les informations d'une demande d'approvisionnement existante." operationId: metJourLesInformationsDuneDemandeDapprovisionnementExistante description: '' parameters: [] responses: { } tags: - "Demande d'approvisionnement | Supply demand" requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: pg nullable: true description: type: string description: '' example: 'Laboriosam eos officiis molestiae delectus nulla.' nullable: true responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 13 nullable: true status: type: string description: '' example: accepted nullable: true enum: - pending - accepted - refused priority: type: string description: '' example: low nullable: true enum: - high - medium - low medications: type: array description: 'Le champ value doit contenir au moins 1 éléments.' example: null items: type: object nullable: true properties: id: type: integer description: 'The id of an existing record in the medications table.' example: 2 nullable: false unit_price: type: integer description: '' example: 13 nullable: true quantity: type: integer description: 'Le champ value doit être au moins 1.' example: 82 nullable: false supplier_id: type: integer description: 'The id of an existing record in the users table.' example: 8 nullable: false required: - id - quantity - supplier_id parameters: - in: path name: supply_demand_id description: 'The ID of the supply demand.' example: 7 required: true schema: type: integer /api/supply-demands/trash: post: summary: "Met en corbeille (suppression logique) une ou plusieurs demandes d'approvisionnement." operationId: metEnCorbeillesuppressionLogiqueUneOuPlusieursDemandesDapprovisionnement description: '' parameters: [] responses: { } tags: - "Demande d'approvisionnement | Supply demand" requestBody: required: false content: application/json: schema: type: object properties: supply_demand_ids: type: array description: 'The id of an existing record in the supply_demands table.' example: - 19 items: type: integer /api/supply-demands/restore: post: summary: "Restaure une ou plusieurs demandes d'approvisionnement supprimées (suppression logique)." operationId: restaureUneOuPlusieursDemandesDapprovisionnementSupprimessuppressionLogique description: '' parameters: [] responses: { } tags: - "Demande d'approvisionnement | Supply demand" requestBody: required: false content: application/json: schema: type: object properties: supply_demand_ids: type: array description: 'The id of an existing record in the supply_demands table.' example: - 8 items: type: integer /api/explanation-requests/all: post: summary: "Afficher les demandes d'explication" operationId: afficherLesDemandesDexplication description: '' parameters: [] responses: { } tags: - "Demande d'explication / Explanation Request" requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 5 nullable: true nbre_items: type: integer description: '' example: 15 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: hufqsv nullable: true /api/explanation-requests: post: summary: "Creer une demande d'explication" operationId: creerUneDemandeDexplication description: '' parameters: [] responses: { } tags: - "Demande d'explication / Explanation Request" requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: dolores nullable: false description: type: string description: '' example: 'Optio aut quia minus ut dolore.' nullable: true idUser: type: integer description: 'The id of an existing record in the users table.' example: 19 nullable: false idResponsable: type: integer description: 'The id of an existing record in the users table.' example: 7 nullable: false image: type: string description: '' example: voluptates nullable: true comments: type: string description: '' example: qui nullable: true required: - name - idUser - idResponsable '/api/explanation-requests/{explanation_request}': get: summary: "Afficher une demande d'explication spécifique" operationId: afficherUneDemandeDexplicationSpcifique description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/explanation-requests/9 could not be found.' properties: message: type: string example: 'The route api/explanation-requests/9 could not be found.' tags: - "Demande d'explication / Explanation Request" put: summary: "Mettre a jour une demande d'explication" operationId: mettreAJourUneDemandeDexplication description: '' parameters: [] responses: { } tags: - "Demande d'explication / Explanation Request" requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: '' example: ad nullable: true description: type: string description: '' example: 'Inventore aperiam ducimus est dolor neque id.' nullable: true idUser: type: integer description: 'The id of an existing record in the users table.' example: 8 nullable: true idResponsable: type: integer description: 'The id of an existing record in the users table.' example: 11 nullable: true image: type: string description: '' example: voluptas nullable: true comments: type: string description: '' example: similique nullable: true parameters: - in: path name: explanation_request description: '' example: 9 required: true schema: type: integer /api/explanation-requests/trash: post: summary: "Archiver (soft delete) les demandes d'explication." operationId: archiversoftDeleteLesDemandesDexplication description: '' parameters: [] responses: { } tags: - "Demande d'explication / Explanation Request" requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the explanation_requests table.' example: - 10 items: type: integer required: - ids /api/explanation-requests/restore: post: summary: "Restaurer les demandes d'explication archivées." operationId: restaurerLesDemandesDexplicationArchives description: '' parameters: [] responses: { } tags: - "Demande d'explication / Explanation Request" requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the explanation_requests table.' example: - 17 items: type: integer required: - ids /api/holidays/all: post: summary: 'Lister les congés enregistrés' operationId: listerLesCongsEnregistrs description: '' parameters: [] responses: { } tags: - 'Demande de congé' requestBody: required: false content: application/json: schema: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 7 nullable: true user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 10 nullable: true status: type: string description: '' example: pending_approval nullable: true enum: - pending_approval - in_progress - approved - rejected archive: type: string description: '' example: only_trashed nullable: true enum: - with_trashed - only_trashed date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true page_items: type: integer description: '' example: 6 nullable: true nbre_items: type: integer description: '' example: 2 nullable: true filter_value: type: string description: '' example: quae nullable: true /api/holidays: post: summary: 'Enregistrer une demande de congé' operationId: enregistrerUneDemandeDeCong description: '' parameters: [] responses: { } tags: - 'Demande de congé' requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: '' example: odit nullable: false start_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: false end_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: false days_taken: type: integer description: '' example: 4 nullable: false reason: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: an nullable: false user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 9 nullable: false required: - type - start_date - end_date - days_taken - reason - user_approve_id '/api/holidays/{holiday_id}': get: summary: "Afficher les détails d'une retenue sur salaire" operationId: afficherLesDtailsDuneRetenueSurSalaire description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/holidays/2 could not be found.' properties: message: type: string example: 'The route api/holidays/2 could not be found.' tags: - 'Demande de congé' put: summary: 'Modifier une demande de congé' operationId: modifierUneDemandeDeCong description: '' parameters: [] responses: { } tags: - 'Demande de congé' requestBody: required: false content: application/json: schema: type: object properties: type: type: string description: '' example: officiis nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d. Le champ value doit être une date après ou égale à today.' example: '2111-01-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d. Le champ value doit être une date après ou égale à start_date.' example: '2104-08-15' nullable: true days_taken: type: integer description: '' example: 20 nullable: true reason: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: noofpsxelcjfm nullable: true status: type: string description: '' example: pending_approval nullable: true enum: - pending_approval - in_progress - approved - rejected parameters: - in: path name: holiday_id description: 'The ID of the holiday.' example: 2 required: true schema: type: integer /api/holidays/trash: post: summary: 'Archiver une ou plusieurs demandes de congés' operationId: archiverUneOuPlusieursDemandesDeCongs description: '' parameters: [] responses: { } tags: - 'Demande de congé' requestBody: required: true content: application/json: schema: type: object properties: idHolidays: type: array description: 'The id of an existing record in the holidays table.' example: - 19 items: type: integer required: - idHolidays /api/holidays/restore: post: summary: 'Restaurer une ou plusieurs demandes de congés' operationId: restaurerUneOuPlusieursDemandesDeCongs description: '' parameters: [] responses: { } tags: - 'Demande de congé' requestBody: required: true content: application/json: schema: type: object properties: idHolidays: type: array description: 'The id of an existing record in the holidays table.' example: - 14 items: type: integer required: - idHolidays /api/permission-requests/all: post: summary: 'Affiche une liste paginée des demandes de permission.' operationId: afficheUneListePagineDesDemandesDePermission description: '' parameters: [] responses: { } tags: - 'Demandes de Permissions' requestBody: required: false content: application/json: schema: type: object properties: status: type: string description: '' example: rejected nullable: true enum: - pending - approved - rejected departure: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true return: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true duration: type: integer description: '' example: 8 nullable: true page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 80 nullable: true nbre_items: type: integer description: '' example: 20 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: ebgtmshskfaemuteyujueotxs nullable: true /api/permission-requests: post: summary: 'Crée une nouvelle demande de permission.' operationId: creUneNouvelleDemandeDePermission description: '' parameters: [] responses: { } tags: - 'Demandes de Permissions' requestBody: required: true content: application/json: schema: type: object properties: reason: type: string description: '' example: voluptatem nullable: false departure: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: false return: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d. Le champ value doit être une date après departure.' example: '2106-11-22' nullable: true duration: type: integer description: 'Le champ value doit être au moins 1.' example: 11 nullable: true status: type: string description: '' example: approved nullable: true enum: - pending - approved - rejected user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 11 nullable: true required: - reason - departure '/api/permission-requests/{permission_request}': get: summary: "Affiche les détails d'une demande de permission spécifique." operationId: afficheLesDtailsDuneDemandeDePermissionSpcifique description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/permission-requests/est could not be found.' properties: message: type: string example: 'The route api/permission-requests/est could not be found.' tags: - 'Demandes de Permissions' put: summary: 'Met à jour une demande de permission si elle est encore en attente.' operationId: metJourUneDemandeDePermissionSiElleEstEncoreEnAttente description: '' parameters: [] responses: { } tags: - 'Demandes de Permissions' requestBody: required: false content: application/json: schema: type: object properties: reason: type: string description: '' example: tempora nullable: true departure: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true return: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d. Le champ value doit être une date après departure.' example: '2052-01-02' nullable: true duration: type: integer description: 'Le champ value doit être au moins 1.' example: 64 nullable: true status: type: string description: '' example: approved nullable: true enum: - pending - approved - rejected user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 5 nullable: true parameters: - in: path name: permission_request description: '' example: est required: true schema: type: string /api/permission-requests/trash: post: summary: 'Archiver (soft delete) les presences spécifiées.' operationId: archiversoftDeleteLesPresencesSpcifies description: '' parameters: [] responses: { } tags: - 'Demandes de Permissions' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the permission_requests table.' example: - 1 items: type: integer required: - ids /api/permission-requests/restore: post: summary: 'Restaurer les permission_requests archivés.' operationId: restaurerLesPermissionRequestsArchivs description: '' parameters: [] responses: { } tags: - 'Demandes de Permissions' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the permission_requests table.' example: - 19 items: type: integer required: - ids /api/departments/all: post: summary: 'Lister les départements' operationId: listerLesDpartements description: '' parameters: [] responses: { } tags: - Départements requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 58 nullable: true nbre_items: type: integer description: '' example: 15 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: rwlzrud nullable: true start_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true end_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 5 nullable: true health_center_id: type: integer description: 'The id of an existing record in the health_centers table.' example: 6 nullable: true trashed: type: boolean description: '' example: true nullable: true /api/departments: post: summary: 'Ajouter un département' operationId: ajouterUnDpartement description: '' parameters: [] responses: { } tags: - Départements requestBody: required: true content: application/json: schema: type: object properties: responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 20 nullable: true health_center_id: type: integer description: 'The id of an existing record in the health_centers table.' example: 15 nullable: false name: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: j nullable: false description: type: string description: '' example: 'Non vero ut asperiores.' nullable: false phone: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: bzibcnegzvevixfzs nullable: false email: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: kuhic.frankie@example.com nullable: true required: - health_center_id - name - description - phone '/api/departments/{department_id}': get: summary: "Afficher les infos d'un département" operationId: afficherLesInfosDunDpartement description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/departments/1 could not be found.' properties: message: type: string example: 'The route api/departments/1 could not be found.' tags: - Départements put: summary: 'Modifier un département' operationId: modifierUnDpartement description: '' parameters: [] responses: { } tags: - Départements requestBody: required: false content: application/json: schema: type: object properties: responsible_id: type: integer description: 'The id of an existing record in the users table.' example: 12 nullable: true health_center_id: type: integer description: 'The id of an existing record in the health_centers table.' example: 12 nullable: true name: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: amipvotsanarpwqnfeytaq nullable: true description: type: string description: '' example: 'Eius et at rerum ea.' nullable: true phone: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: g nullable: true email: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: ines.tillman@example.net nullable: true parameters: - in: path name: department_id description: 'The ID of the department.' example: 1 required: true schema: type: integer /api/departments/trash: post: summary: 'Archiver plusieurs medical_books' operationId: archiverPlusieursMedicalBooks description: '' parameters: [] responses: { } tags: - Départements requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the departments table.' example: - 12 items: type: integer required: - ids /api/departments/restore: post: summary: 'Restaurer plusieurs medical_books' operationId: restaurerPlusieursMedicalBooks description: '' parameters: [] responses: { } tags: - Départements requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the departments table.' example: - 15 items: type: integer required: - ids /api/rendez-vous/all: post: summary: 'Lister les rendez-vous' operationId: listerLesRendezVous description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 58 nullable: true nbre_items: type: integer description: '' example: 15 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: pgqrg nullable: true patient_id: type: integer description: 'The id of an existing record in the users table.' example: 6 nullable: true doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 1 nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true status: type: string description: '' example: undone nullable: true enum: - pending - validated - rejected - done - undone trashed: type: boolean description: '' example: true nullable: true /api/rendez-vous: post: summary: 'Ajouter un rendez-vous' operationId: ajouterUnRendezVous description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 3 nullable: true doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 3 nullable: false date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: false hour: type: string description: '' example: et nullable: false description: type: string description: '' example: 'Debitis quia voluptatem aspernatur quos.' nullable: false required: - doctor_id - date - hour - description '/api/rendez-vous/{rendez_vous}': get: summary: "Afficher les infos d'un rendez-vous" operationId: afficherLesInfosDunRendezVous description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/rendez-vous/1 could not be found.' properties: message: type: string example: 'The route api/rendez-vous/1 could not be found.' tags: - Endpoints put: summary: 'Modifier un rendez-vous' operationId: modifierUnRendezVous description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 20 nullable: true doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 4 nullable: true date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true hour: type: string description: '' example: et nullable: true description: type: string description: '' example: 'Iure hic voluptatem ab est non quis.' nullable: true status: type: string description: '' example: validated nullable: true enum: - pending - validated - rejected - done - undone parameters: - in: path name: rendez_vous description: '' example: 1 required: true schema: type: integer /api/rendez-vous/trash: post: summary: 'Archiver plusieurs rendez_vous' operationId: archiverPlusieursRendezVous description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the rendez_vous table.' example: - 11 items: type: integer required: - ids /api/rendez-vous/restore: post: summary: 'Restaurer plusieurs rendez_vous' operationId: restaurerPlusieursRendezVous description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the rendez_vous table.' example: - 13 items: type: integer required: - ids /api/expense-types/all: post: summary: 'LISTE (filtrée)' operationId: lISTEfiltre description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 5 nullable: true nbre_items: type: integer description: 'Le champ value doit être au moins 1.' example: 48 nullable: true filter_value: type: string description: '' example: numquam nullable: true name: type: string description: '' example: quos nullable: true description: type: string description: '' example: 'Minima ut mollitia omnis nobis repudiandae aspernatur dicta.' nullable: true trashed: type: boolean description: '' example: true nullable: true /api/expense-types: post: summary: CREATE operationId: cREATE description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: '' example: officia nullable: true description: type: string description: '' example: 'Rerum hic quo odio aut at quo porro.' nullable: true '/api/expense-types/{expense_type}': get: summary: SHOW operationId: sHOW description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/expense-types/7 could not be found.' properties: message: type: string example: 'The route api/expense-types/7 could not be found.' tags: - Endpoints put: summary: 'UPDATE (tous les champs)' operationId: uPDATEtousLesChamps description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: '' example: iusto nullable: true description: type: string description: '' example: 'Fuga eos alias enim beatae in explicabo voluptatibus.' nullable: true parameters: - in: path name: expense_type description: '' example: 7 required: true schema: type: integer /api/expense-types/trash: post: summary: 'TRASH (soft delete multiple)' operationId: tRASHsoftDeleteMultiple description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: '' example: - 5 items: type: integer required: - ids /api/expense-types/restore: post: summary: RESTORE operationId: rESTORE description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: '' example: - 17 items: type: integer required: - ids /api/expense-types/destroy: post: summary: 'DELETE PERMANENT' operationId: dELETEPERMANENT description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: '' example: - 19 items: type: integer required: - ids /api/presences/all: post: summary: 'Lister les présences' operationId: listerLesPrsences description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 81 nullable: true nbre_items: type: integer description: 'Le champ value doit être au moins 1.' example: 65 nullable: true filter_value: type: string description: '' example: et nullable: true user_id: type: integer description: 'The id of an existing record in the users table.' example: 3 nullable: true health_center_id: type: integer description: 'The id of an existing record in the health_centers table.' example: 4 nullable: true department_id: type: integer description: 'The id of an existing record in the departments table.' example: 17 nullable: true date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true start_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Le champ value doit être une date après ou égale à start_date.' example: '2078-07-31' nullable: true type: type: string description: '' example: saepe nullable: true trashed: type: boolean description: '' example: true nullable: true /api/presences: post: summary: 'Ajouter une présence' operationId: ajouterUnePrsence description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 12 nullable: false health_center_id: type: integer description: 'The id of an existing record in the health_centers table.' example: 15 nullable: true department_id: type: integer description: 'The id of an existing record in the departments table.' example: 7 nullable: true date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true hour: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true arrivalTime: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true departureTime: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true type: type: string description: '' example: rerum nullable: false scanPerCourse: type: integer description: 'Le champ value doit être au moins 0.' example: 21 nullable: false reason: type: string description: '' example: atque nullable: true savingType: type: string description: '' example: perferendis nullable: false required: - user_id - type - scanPerCourse - savingType '/api/presences/{presence_id}': get: summary: 'Afficher une présence' operationId: afficherUnePrsence description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/presences/14 could not be found.' properties: message: type: string example: 'The route api/presences/14 could not be found.' tags: - Endpoints put: summary: 'Modifier une présence' operationId: modifierUnePrsence description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 13 nullable: true health_center_id: type: integer description: 'The id of an existing record in the health_centers table.' example: 13 nullable: true department_id: type: integer description: 'The id of an existing record in the departments table.' example: 1 nullable: true date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true hour: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true arrivalTime: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true departureTime: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true type: type: string description: '' example: enim nullable: true scanPerCourse: type: integer description: 'Le champ value doit être au moins 0.' example: 0 nullable: true reason: type: string description: '' example: enim nullable: true savingType: type: string description: '' example: modi nullable: true parameters: - in: path name: presence_id description: 'The ID of the presence.' example: 14 required: true schema: type: integer /api/presences/trash: post: summary: 'Trash présences' operationId: trashPrsences description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the presences table.' example: - 2 items: type: integer required: - ids /api/presences/restore: post: summary: 'Restore présences' operationId: restorePrsences description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the presences table.' example: - 8 items: type: integer required: - ids /api/presences/destroy: post: summary: 'Supprimer définitivement des présences' operationId: supprimerDfinitivementDesPrsences description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the presences table.' example: - 4 items: type: integer required: - ids /api/dashboardfounder: post: summary: '' operationId: postApiDashboardfounder description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: health_center_id: type: integer description: 'The id of an existing record in the health_centers table.' example: 2 nullable: true /api/care-schedule-executions/all: post: summary: '' operationId: postApiCareScheduleExecutionsAll description: '' parameters: [] responses: { } tags: - 'Exécutions de planning de soins' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 39 nullable: true nbre_items: type: integer description: '' example: 20 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: aypeubexghawdnhnvywds nullable: true care_schedule_id: type: integer description: 'The id of an existing record in the care_schedules table.' example: 6 nullable: true nurse_id: type: integer description: 'The id of an existing record in the users table.' example: 10 nullable: true status: type: string description: '' example: late nullable: true enum: - pending - done - late - missed nursing_act_id: type: integer description: 'The id of an existing record in the nursing_acts table.' example: 4 nullable: true date_from: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true date_to: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true trashed: type: boolean description: '' example: false nullable: true /api/care-schedule-executions: post: summary: '' operationId: postApiCareScheduleExecutions description: '' parameters: [] responses: { } tags: - 'Exécutions de planning de soins' requestBody: required: true content: application/json: schema: type: object properties: care_schedule_id: type: integer description: '' example: 15 nullable: false nurse_id: type: integer description: 'The id of an existing record in the users table.' example: 15 nullable: false scheduled_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: false executed_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true status: type: string description: '' example: pending nullable: false enum: - pending - done - late - missed delay_minutes: type: integer description: '' example: 1 nullable: true observations: type: string description: '' example: at nullable: true nursing_act_id: type: integer description: 'The id of an existing record in the nursing_acts table.' example: 18 nullable: true required: - care_schedule_id - nurse_id - scheduled_at - status '/api/care-schedule-executions/{care_schedule_execution}': get: summary: '' operationId: getApiCareScheduleExecutionsCare_schedule_execution description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/care-schedule-executions/1 could not be found.' properties: message: type: string example: 'The route api/care-schedule-executions/1 could not be found.' tags: - 'Exécutions de planning de soins' put: summary: '' operationId: putApiCareScheduleExecutionsCare_schedule_execution description: '' parameters: [] responses: { } tags: - 'Exécutions de planning de soins' requestBody: required: false content: application/json: schema: type: object properties: care_schedule_id: type: integer description: '' example: 14 nullable: true nurse_id: type: integer description: '' example: 7 nullable: true scheduled_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true executed_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true status: type: string description: '' example: missed nullable: true enum: - pending - done - late - missed delay_minutes: type: integer description: '' example: 12 nullable: true observations: type: string description: '' example: ducimus nullable: true nursing_act_id: type: integer description: '' example: 3 nullable: true parameters: - in: path name: care_schedule_execution description: '' example: 1 required: true schema: type: integer /api/care-schedule-executions/trash: post: summary: '' operationId: postApiCareScheduleExecutionsTrash description: '' parameters: [] responses: { } tags: - 'Exécutions de planning de soins' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the care_schedule_executions table.' example: - 13 items: type: integer /api/care-schedule-executions/restore: post: summary: '' operationId: postApiCareScheduleExecutionsRestore description: '' parameters: [] responses: { } tags: - 'Exécutions de planning de soins' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the care_schedule_executions table.' example: - 1 items: type: integer /api/care-schedule-executions/destroy: post: summary: 'Suppression définitive' operationId: suppressionDfinitive description: '' parameters: [] responses: { } tags: - 'Exécutions de planning de soins' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the care_schedule_executions table.' example: - 1 items: type: integer /api/medication-prescription-executions/all: post: summary: '' operationId: postApiMedicationPrescriptionExecutionsAll description: '' parameters: [] responses: { } tags: - 'Exécutions de prescriptions médicamenteuses' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 13 nullable: true nbre_items: type: integer description: '' example: 19 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: mqsf nullable: true medication_prescription_id: type: integer description: '' example: 12 nullable: true scheduled_at: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true execute_at: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true status: type: string description: '' example: missed nullable: true enum: - pending - done - late - missed date_from: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true date_to: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true trashed: type: boolean description: '' example: false nullable: true /api/medication-prescription-executions: post: summary: '' operationId: postApiMedicationPrescriptionExecutions description: '' parameters: [] responses: { } tags: - 'Exécutions de prescriptions médicamenteuses' requestBody: required: true content: application/json: schema: type: object properties: medication_prescription_id: type: integer description: '' example: 8 nullable: false scheduled_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: false execute_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true status: type: string description: '' example: missed nullable: false enum: - pending - done - late - missed delay_minutes: type: integer description: '' example: 7 nullable: true required: - medication_prescription_id - scheduled_at - status '/api/medication-prescription-executions/{execution_id}': get: summary: '' operationId: getApiMedicationPrescriptionExecutionsExecution_id description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/medication-prescription-executions/12 could not be found.' properties: message: type: string example: 'The route api/medication-prescription-executions/12 could not be found.' tags: - 'Exécutions de prescriptions médicamenteuses' put: summary: '' operationId: putApiMedicationPrescriptionExecutionsExecution_id description: '' parameters: [] responses: { } tags: - 'Exécutions de prescriptions médicamenteuses' requestBody: required: false content: application/json: schema: type: object properties: medication_prescription_id: type: integer description: '' example: 15 nullable: true scheduled_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true execute_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true status: type: string description: '' example: pending nullable: true enum: - pending - done - late - missed delay_minutes: type: integer description: '' example: 17 nullable: true parameters: - in: path name: execution_id description: 'The ID of the execution.' example: 12 required: true schema: type: integer /api/medication-prescription-executions/trash: post: summary: '' operationId: postApiMedicationPrescriptionExecutionsTrash description: '' parameters: [] responses: { } tags: - 'Exécutions de prescriptions médicamenteuses' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medication_prescription_executions table.' example: - 19 items: type: integer /api/medication-prescription-executions/restore: post: summary: '' operationId: postApiMedicationPrescriptionExecutionsRestore description: '' parameters: [] responses: { } tags: - 'Exécutions de prescriptions médicamenteuses' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medication_prescription_executions table.' example: - 19 items: type: integer /api/medication-prescription-executions/destroy: post: summary: '' operationId: postApiMedicationPrescriptionExecutionsDestroy description: '' parameters: [] responses: { } tags: - 'Exécutions de prescriptions médicamenteuses' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medication_prescription_executions table.' example: - 2 items: type: integer /api/forum/categories/all: post: summary: 'Lister les categories de forum' operationId: listerLesCategoriesDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 50 nullable: true nbre_items: type: integer description: '' example: 3 nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: eekburcetelztppclfhakvk nullable: true /api/forum/categories: post: summary: 'Ajouter une catégorie de forum' operationId: ajouterUneCatgorieDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: hvdxmshzvfw nullable: false description: type: string description: '' example: 'Voluptate culpa ut ex quia et itaque provident.' nullable: true required: - name '/api/forum/categories/{forum_category}': get: summary: "Afficher les infos d'une catégorie de forum" operationId: afficherLesInfosDuneCatgorieDeForum description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/forum/categories/1 could not be found.' properties: message: type: string example: 'The route api/forum/categories/1 could not be found.' tags: - Forum put: summary: 'Modifier une catégorie de forum' operationId: modifierUneCatgorieDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: uzinticrlgjbby nullable: true description: type: string description: '' example: 'Omnis odio maxime ut reprehenderit et.' nullable: true parameters: - in: path name: forum_category description: '' example: 1 required: true schema: type: integer /api/forum/categories/trash: post: summary: 'Archiver plusieurs categories de forum' operationId: archiverPlusieursCategoriesDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the forum_categories table.' example: - 1 items: type: integer required: - ids /api/forum/categories/restore: post: summary: 'Restaurer plusieurs categories de forum' operationId: restaurerPlusieursCategoriesDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the forum_categories table.' example: - 10 items: type: integer required: - ids /api/forum/questions/all: post: summary: 'Lister les questions de forum' operationId: listerLesQuestionsDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 50 nullable: true nbre_items: type: integer description: '' example: 12 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: kqufoosbfydb nullable: true start_date: type: string description: 'Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true forum_category_id: type: integer description: 'The id of an existing record in the forum_categories table.' example: 19 nullable: true user_id: type: integer description: 'The id of an existing record in the users table.' example: 13 nullable: true /api/forum/questions: post: summary: 'Ajouter une question de forum' operationId: ajouterUneQuestionDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: true content: application/json: schema: type: object properties: forum_category_id: type: integer description: 'The id of an existing record in the forum_categories table.' example: 13 nullable: false title: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: rutpwtcsxa nullable: false body: type: string description: '' example: fugiat nullable: false required: - forum_category_id - title - body '/api/forum/questions/{forum_question}': get: summary: "Afficher les infos d'une question de forum" operationId: afficherLesInfosDuneQuestionDeForum description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/forum/questions/1 could not be found.' properties: message: type: string example: 'The route api/forum/questions/1 could not be found.' tags: - Forum put: summary: 'Modifier une question de forum' operationId: modifierUneQuestionDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: false content: application/json: schema: type: object properties: forum_category_id: type: integer description: 'The id of an existing record in the forum_categories table.' example: 13 nullable: true title: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: ux nullable: true body: type: string description: '' example: explicabo nullable: true is_resolved: type: boolean description: '' example: false nullable: true parameters: - in: path name: forum_question description: '' example: 1 required: true schema: type: integer /api/forum/questions/trash: post: summary: 'Archiver plusieurs questions de forum' operationId: archiverPlusieursQuestionsDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the forum_questions table.' example: - 12 items: type: integer required: - ids /api/forum/questions/restore: post: summary: 'Restaurer plusieurs questions de forum' operationId: restaurerPlusieursQuestionsDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the forum_questions table.' example: - 16 items: type: integer required: - ids /api/forum/answers/all: post: summary: 'Lister les réponses de forum' operationId: listerLesRponsesDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 87 nullable: true nbre_items: type: integer description: '' example: 17 nullable: true start_date: type: string description: 'Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: nyxjrizagowuwgwgaoy nullable: true forum_category_id: type: integer description: 'The id of an existing record in the forum_categories table.' example: 3 nullable: true forum_question_id: type: integer description: 'The id of an existing record in the forum_questions table.' example: 17 nullable: true user_id: type: integer description: 'The id of an existing record in the users table.' example: 16 nullable: true /api/forum/answers: post: summary: 'Ajouter une réponse à une question de forum' operationId: ajouterUneRponseUneQuestionDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: true content: application/json: schema: type: object properties: forum_question_id: type: integer description: 'The id of an existing record in the forum_questions table.' example: 18 nullable: false body: type: string description: '' example: consequatur nullable: false required: - forum_question_id - body '/api/forum/answers/{forum_answer}': get: summary: "Afficher les infos d'une réponse à une question de forum" operationId: afficherLesInfosDuneRponseUneQuestionDeForum description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/forum/answers/1 could not be found.' properties: message: type: string example: 'The route api/forum/answers/1 could not be found.' tags: - Forum put: summary: 'Modifier une réponse à une question de forum' operationId: modifierUneRponseUneQuestionDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: false content: application/json: schema: type: object properties: forum_question_id: type: integer description: 'The id of an existing record in the forum_questions table.' example: 10 nullable: true body: type: string description: '' example: neque nullable: true is_accepted: type: boolean description: '' example: true nullable: true parameters: - in: path name: forum_answer description: '' example: 1 required: true schema: type: integer /api/forum/answers/trash: post: summary: 'Archiver plusieurs questions de forum' operationId: archiverPlusieursQuestionsDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the forum_answers table.' example: - 7 items: type: integer required: - ids /api/forum/answers/restore: post: summary: 'Restaurer plusieurs réponses aux questions de forum' operationId: restaurerPlusieursRponsesAuxQuestionsDeForum description: '' parameters: [] responses: { } tags: - Forum requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the forum_answers table.' example: - 11 items: type: integer required: - ids /api/rooms/all: post: summary: 'Liste des chambres avec filtres' operationId: listeDesChambresAvecFiltres description: '' parameters: [] responses: { } tags: - 'Gestion des Chambres' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 59 nullable: true nbre_items: type: integer description: 'Le champ value doit être au moins 1.' example: 23 nullable: true name: type: string description: '' example: est nullable: true type: type: string description: '' example: harum nullable: true etage: type: string description: '' example: eum nullable: true min_price: type: number description: 'Le champ value doit être au moins 0.' example: 83 nullable: true max_price: type: number description: 'Le champ value doit être au moins 0.' example: 22 nullable: true trashed: type: boolean description: '' example: false nullable: true /api/rooms: post: summary: "Création d'une chambre" operationId: crationDuneChambre description: '' parameters: [] responses: { } tags: - 'Gestion des Chambres' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: oolvgpnp nullable: false price: type: number description: 'Le champ value doit être au moins 0.' example: 90 nullable: true number_beds: type: integer description: 'Le champ value doit être au moins 1.' example: 73 nullable: true type: type: string description: 'Le champ value ne peut contenir plus de 50 caractères.' example: qbsdqosknaddhayapiqn nullable: true etage: type: string description: 'Le champ value ne peut contenir plus de 50 caractères.' example: aoyduaprljyohizpimlkdyk nullable: true required: - name '/api/rooms/{room_id}': get: summary: 'Afficher une chambre' operationId: afficherUneChambre description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/rooms/1 could not be found.' properties: message: type: string example: 'The route api/rooms/1 could not be found.' tags: - 'Gestion des Chambres' put: summary: "Mise à jour d'une chambre" operationId: miseJourDuneChambre description: '' parameters: [] responses: { } tags: - 'Gestion des Chambres' requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: udbchdnjbqmxd nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 68 nullable: true number_beds: type: integer description: 'Le champ value doit être au moins 1.' example: 65 nullable: true type: type: string description: 'Le champ value ne peut contenir plus de 50 caractères.' example: jusjeqyjkf nullable: true etage: type: string description: 'Le champ value ne peut contenir plus de 50 caractères.' example: xezglxylaafrubozeiedh nullable: true parameters: - in: path name: room_id description: 'The ID of the room.' example: 1 required: true schema: type: integer /api/rooms/trash: post: summary: 'Suppression logique (soft delete)' operationId: suppressionLogiquesoftDelete description: '' parameters: [] responses: { } tags: - 'Gestion des Chambres' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the rooms table.' example: - 15 items: type: integer /api/rooms/restore: post: summary: Restauration operationId: restauration description: '' parameters: [] responses: { } tags: - 'Gestion des Chambres' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the rooms table.' example: - 10 items: type: integer /api/rooms/destroy: post: summary: 'Suppression définitive' operationId: suppressionDfinitive description: '' parameters: [] responses: { } tags: - 'Gestion des Chambres' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the rooms table.' example: - 11 items: type: integer /api/lab-requests/all: post: summary: "Lister les demandes d'examens" operationId: listerLesDemandesDexamens description: '' parameters: [] responses: { } tags: - Laboratoire requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 20 nullable: true nbre_items: type: integer description: '' example: 19 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: ktmrfjuzannxrwjy nullable: true patient_id: type: integer description: 'The id of an existing record in the users table.' example: 15 nullable: true doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 2 nullable: true technician_id: type: integer description: 'The id of an existing record in the users table.' example: 3 nullable: true status: type: string description: '' example: done nullable: true enum: - requested - sampled - in_progress - done - validated lab_exam_pack_id: type: integer description: 'The id of an existing record in the lab_exam_packs table.' example: 6 nullable: true date_from: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true date_to: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true trashed: type: boolean description: '' example: true nullable: true /api/lab-requests: post: summary: "Créer une demande d'examen labo" operationId: crerUneDemandeDexamenLabo description: '' parameters: [] responses: { } tags: - Laboratoire requestBody: required: true content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 3 nullable: false doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 20 nullable: false medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 4 nullable: true lab_exam_catalog_id: type: integer description: 'The id of an existing record in the lab_exam_catalogs table.' example: 8 nullable: true lab_exam_pack_id: type: integer description: 'The id of an existing record in the lab_exam_packs table.' example: 11 nullable: true exam_name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: fodklqycgdepfidjpfdfluyv nullable: false clinical_info: type: string description: '' example: fugiat nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 76 nullable: true requested_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: false required: - patient_id - doctor_id - exam_name - requested_at '/api/lab-requests/{lab_request}': get: summary: "Afficher une demande d'examen" operationId: afficherUneDemandeDexamen description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/lab-requests/1 could not be found.' properties: message: type: string example: 'The route api/lab-requests/1 could not be found.' tags: - Laboratoire put: summary: "Mettre à jour le statut et les résultats d'un examen" operationId: mettreJourLeStatutEtLesRsultatsDunExamen description: '' parameters: [] responses: { } tags: - Laboratoire requestBody: required: false content: application/json: schema: type: object properties: status: type: string description: '' example: ipsa nullable: true technician_id: type: integer description: 'The id of an existing record in the users table.' example: 19 nullable: true validator_id: type: integer description: 'The id of an existing record in the users table.' example: 7 nullable: true clinical_info: type: string description: '' example: non nullable: true sampled_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true result_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true validated_at: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 47 nullable: true results: type: array description: '' example: null items: type: object nullable: true properties: parameter_name: type: string description: 'This field is required when results is present.' example: facere nullable: false value: type: string description: '' example: magnam nullable: true unit: type: string description: '' example: minima nullable: true reference_range: type: string description: '' example: ipsum nullable: true is_abnormal: type: boolean description: '' example: true nullable: true notes: type: string description: '' example: sit nullable: true parameters: - in: path name: lab_request description: '' example: 1 required: true schema: type: integer /api/lab-requests/trash: post: summary: 'Archiver des demandes labo' operationId: archiverDesDemandesLabo description: '' parameters: [] responses: { } tags: - Laboratoire requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the lab_requests table.' example: - 7 items: type: integer /api/lab-requests/restore: post: summary: 'Restaurer des demandes labo' operationId: restaurerDesDemandesLabo description: '' parameters: [] responses: { } tags: - Laboratoire requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the lab_requests table.' example: - 1 items: type: integer /api/beds/all: post: summary: 'Lister les lits' operationId: listerLesLits description: '' parameters: [] responses: { } tags: - Lits requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 83 nullable: true nbre_items: type: integer description: '' example: 17 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: vz nullable: true idroom: type: integer description: '' example: 14 nullable: true status: type: string description: '' example: free nullable: true enum: - free - busy trashed: type: boolean description: '' example: false nullable: true /api/beds: post: summary: 'Ajouter un lit' operationId: ajouterUnLit description: '' parameters: [] responses: { } tags: - Lits requestBody: required: true content: application/json: schema: type: object properties: idroom: type: integer description: '' example: 20 nullable: false price: type: number description: 'Le champ value doit être au moins 0.' example: 90 nullable: true name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: elyrgdzqbztvuj nullable: false type: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: xvxtohdirrygjc nullable: true required: - idroom - name '/api/beds/{bed_id}': get: summary: 'Afficher un lit' operationId: afficherUnLit description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/beds/1 could not be found.' properties: message: type: string example: 'The route api/beds/1 could not be found.' tags: - Lits put: summary: 'Modifier un lit' operationId: modifierUnLit description: '' parameters: [] responses: { } tags: - Lits requestBody: required: false content: application/json: schema: type: object properties: idroom: type: integer description: '' example: 10 nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 42 nullable: true name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: eonbehbhbqbymywrbjr nullable: true type: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: yfshxtahfqyyhbvrmhkvn nullable: true parameters: - in: path name: bed_id description: 'The ID of the bed.' example: 1 required: true schema: type: integer /api/beds/trash: post: summary: 'Archiver plusieurs lits' operationId: archiverPlusieursLits description: '' parameters: [] responses: { } tags: - Lits requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the beds table.' example: - 20 items: type: integer /api/beds/restore: post: summary: 'Restaurer plusieurs lits' operationId: restaurerPlusieursLits description: '' parameters: [] responses: { } tags: - Lits requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the beds table.' example: - 4 items: type: integer /api/beds/destroy: post: summary: 'Suppression définitive' operationId: suppressionDfinitive description: '' parameters: [] responses: { } tags: - Lits requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the beds table.' example: - 14 items: type: integer /api/medications/all: post: summary: 'Lister les médicaments' operationId: listerLesMdicaments description: '' parameters: [] responses: { } tags: - Médicaments requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 64 nullable: true nbre_items: type: integer description: '' example: 19 nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: nxtzmjcdfkwhw nullable: true name: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: b nullable: true trashed: type: boolean description: '' example: true nullable: true /api/medications: post: summary: "Ajout d'un médicament" operationId: ajoutDunMdicament description: '' parameters: [] responses: { } tags: - Médicaments requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: ssrwllnelq nullable: false description: type: string description: '' example: 'Accusantium est modi similique est qui quasi quis doloremque.' nullable: true photo: type: string description: '' example: soluta nullable: true required: - name '/api/medications/{medication_id}': get: summary: 'Afficher un médicament' operationId: afficherUnMdicament description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/medications/1 could not be found.' properties: message: type: string example: 'The route api/medications/1 could not be found.' tags: - Médicaments put: summary: 'Modifier un médicament' operationId: modifierUnMdicament description: '' parameters: [] responses: { } tags: - Médicaments requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: ufsofjsemx nullable: true description: type: string description: '' example: 'Exercitationem labore sint velit fuga rerum reprehenderit.' nullable: true photo: type: string description: '' example: cupiditate nullable: true parameters: - in: path name: medication_id description: 'The ID of the medication.' example: 1 required: true schema: type: integer /api/medications/trash: post: summary: 'Archiver plusieurs médicaments' operationId: archiverPlusieursMdicaments description: '' parameters: [] responses: { } tags: - Médicaments requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medications table.' example: - 17 items: type: integer required: - ids /api/medications/restore: post: summary: 'Restaurer plusieurs médicaments' operationId: restaurerPlusieursMdicaments description: '' parameters: [] responses: { } tags: - Médicaments requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medications table.' example: - 7 items: type: integer required: - ids /api/expense-reports/all: post: summary: 'Afficher les notes de frais' operationId: afficherLesNotesDeFrais description: '' parameters: [] responses: { } tags: - 'Notes de frais / Expense Reports' requestBody: required: false content: application/json: schema: type: object properties: status: type: string description: '' example: paid nullable: true enum: - pending_approval - approved - rejected - paid date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 87 nullable: true nbre_items: type: integer description: '' example: 16 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: wrhjfhnvevaharsssa nullable: true '/api/expense-reports/{id}': get: summary: 'Afficher une note de frais spécifique' operationId: afficherUneNoteDeFraisSpcifique description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/expense-reports/deserunt could not be found.' properties: message: type: string example: 'The route api/expense-reports/deserunt could not be found.' tags: - 'Notes de frais / Expense Reports' put: summary: 'Mettre à jour une note de frais' operationId: mettreJourUneNoteDeFrais description: '' parameters: [] responses: { } tags: - 'Notes de frais / Expense Reports' requestBody: required: false content: application/json: schema: type: object properties: libelle: type: string description: '' example: sed nullable: true amount: type: number description: 'Le champ value doit être au moins 0.' example: 42 nullable: true description: type: string description: '' example: 'Est incidunt voluptate fuga ipsam magnam.' nullable: true date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true status: type: string description: '' example: paid nullable: true enum: - pending_approval - approved - rejected - paid idUserApprove: type: integer description: 'The id of an existing record in the users table.' example: 16 nullable: true parameters: - in: path name: id description: 'The ID of the expense report.' example: deserunt required: true schema: type: string /api/expense-reports: post: summary: 'Créer une note de frais' operationId: crerUneNoteDeFrais description: '' parameters: [] responses: { } tags: - 'Notes de frais / Expense Reports' requestBody: required: true content: application/json: schema: type: object properties: libelle: type: string description: '' example: odio nullable: false amount: type: number description: 'Le champ value doit être au moins 0.' example: 49 nullable: false description: type: string description: '' example: 'Reiciendis qui aliquid nobis.' nullable: false date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: false status: type: string description: '' example: pending_approval nullable: true enum: - pending_approval - approved - rejected - paid idUserApprove: type: integer description: 'The id of an existing record in the users table.' example: 14 nullable: true required: - libelle - amount - description - date /api/expense-reports/trash: post: summary: 'Archiver (soft delete) les notes de frais.' operationId: archiversoftDeleteLesNotesDeFrais description: '' parameters: [] responses: { } tags: - 'Notes de frais / Expense Reports' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the expense_reports table.' example: - 11 items: type: integer required: - ids /api/expense-reports/restore: post: summary: 'Restaurer les notes de frais archivées.' operationId: restaurerLesNotesDeFraisArchives description: '' parameters: [] responses: { } tags: - 'Notes de frais / Expense Reports' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the expense_reports table.' example: - 16 items: type: integer required: - ids /api/expense-reports/destroy: post: summary: 'Supprimer définitivement les notes de frais spécifiées.' operationId: supprimerDfinitivementLesNotesDeFraisSpcifies description: '' parameters: [] responses: { } tags: - 'Notes de frais / Expense Reports' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the expense_reports table.' example: - 16 items: type: integer required: - ids /api/foods/all: post: summary: 'Lister les nourritures' operationId: listerLesNourritures description: '' parameters: [] responses: { } tags: - Nourritures requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 25 nullable: true nbre_items: type: integer description: '' example: 9 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: eiarwttplqoaibuwtmxk nullable: true trashed: type: boolean description: '' example: false nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true name: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: ninlomg nullable: true /api/foods: post: summary: 'Ajouter une nourriture' operationId: ajouterUneNourriture description: '' parameters: [] responses: { } tags: - Nourritures requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: gx nullable: false description: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: 'Cumque distinctio eos sint molestias labore perspiciatis.' nullable: true potassium_mg: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: hepclqxvlgi nullable: true sodium_mg: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: my nullable: true phosphorus_mg: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: rrpq nullable: true photo: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: vzlrjbodahsnzdi nullable: true food_alternatives: type: array description: '' example: null items: type: object nullable: true properties: alternative_id: type: integer description: 'The id of an existing record in the food table.' example: 3 nullable: false reason: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: k nullable: true required: - alternative_id required: - name '/api/foods/{food_id}': get: summary: 'Afficher une nourriture' operationId: afficherUneNourriture description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/foods/6 could not be found.' properties: message: type: string example: 'The route api/foods/6 could not be found.' tags: - Nourritures put: summary: 'Modifier une nourriture' operationId: modifierUneNourriture description: '' parameters: [] responses: { } tags: - Nourritures requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: qdkxlcepg nullable: true description: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: 'Ea tempore fugit ex est eius quas.' nullable: true potassium_mg: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: dxzvzezrvg nullable: true sodium_mg: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: hmbvnspawtodzrkchiqskjky nullable: true phosphorus_mg: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: jjntdfemirdclfkm nullable: true photo: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: mooibioku nullable: true food_alternatives: type: array description: '' example: null items: type: object nullable: true properties: alternative_id: type: integer description: 'The id of an existing record in the food table.' example: 8 nullable: false reason: type: string description: 'Le champ value ne peut contenir plus de 200 caractères.' example: dptsuacsizbhfztxtmxgvoi nullable: true required: - alternative_id parameters: - in: path name: food_id description: 'The ID of the food.' example: 6 required: true schema: type: integer /api/foods/trash: post: summary: 'Archiver plusieurs nourritures' operationId: archiverPlusieursNourritures description: '' parameters: [] responses: { } tags: - Nourritures requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the food table.' example: - 5 items: type: integer required: - ids /api/foods/restore: post: summary: 'Restaurer plusieurs nourritures' operationId: restaurerPlusieursNourritures description: '' parameters: [] responses: { } tags: - Nourritures requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the food table.' example: - 19 items: type: integer required: - ids /api/lab-exam-packs/all: post: summary: '' operationId: postApiLabExamPacksAll description: '' parameters: [] responses: { } tags: - "Packs d'examens de laboratoire" requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 29 nullable: true nbre_items: type: integer description: '' example: 18 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: fnmlezyjvrwgqmqgcyajrc nullable: true is_active: type: boolean description: '' example: false nullable: true trashed: type: boolean description: '' example: false nullable: true /api/lab-exam-packs: post: summary: '' operationId: postApiLabExamPacks description: '' parameters: [] responses: { } tags: - "Packs d'examens de laboratoire" requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: bffnhtyqo nullable: false description: type: string description: '' example: 'Ea eaque laborum quia qui et et non.' nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 58 nullable: false is_active: type: boolean description: '' example: true nullable: true exam_ids: type: array description: 'The id of an existing record in the lab_exam_catalogs table.' example: null items: type: string required: - name - price '/api/lab-exam-packs/{labExamPack_id}': get: summary: '' operationId: getApiLabExamPacksLabExamPack_id description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/lab-exam-packs/1 could not be found.' properties: message: type: string example: 'The route api/lab-exam-packs/1 could not be found.' tags: - "Packs d'examens de laboratoire" put: summary: '' operationId: putApiLabExamPacksLabExamPack_id description: '' parameters: [] responses: { } tags: - "Packs d'examens de laboratoire" requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: bajbqxtleqldidt nullable: true description: type: string description: '' example: 'Quasi numquam excepturi impedit qui est est mollitia.' nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 52 nullable: true is_active: type: boolean description: '' example: false nullable: true exam_ids: type: array description: 'The id of an existing record in the lab_exam_catalogs table.' example: - 13 items: type: integer delete: summary: '' operationId: deleteApiLabExamPacksLabExamPack_id description: '' parameters: [] responses: { } tags: - "Packs d'examens de laboratoire" parameters: - in: path name: labExamPack_id description: 'The ID of the labExamPack.' example: 1 required: true schema: type: integer /api/lab-exam-packs/trash: post: summary: '' operationId: postApiLabExamPacksTrash description: '' parameters: [] responses: { } tags: - "Packs d'examens de laboratoire" requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the lab_exam_packs table.' example: - 16 items: type: integer /api/lab-exam-packs/restore: post: summary: '' operationId: postApiLabExamPacksRestore description: '' parameters: [] responses: { } tags: - "Packs d'examens de laboratoire" requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the lab_exam_packs table.' example: - 19 items: type: integer /api/medical-pages/all: post: summary: 'Lister les pagse de carnets médicaux' operationId: listerLesPagseDeCarnetsMdicaux description: '' parameters: [] responses: { } tags: - 'Page Médicale' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 29 nullable: true nbre_items: type: integer description: '' example: 4 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: dohvtjrveickpvjgkx nullable: true doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 14 nullable: true medical_book_id: type: integer description: 'The id of an existing record in the medical_books table.' example: 16 nullable: true department_id: type: integer description: 'The id of an existing record in the departments table.' example: 20 nullable: true patient_id: type: integer description: '' example: 19 nullable: true consultation_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true status: type: string description: '' example: completed nullable: true enum: - pending - in_progress - completed - cancelled start_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true end_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true trashed: type: boolean description: '' example: false nullable: true consultation_type: type: string description: '' example: emergency nullable: true enum: - first_visit - follow_up - emergency disease_history: type: string description: '' example: voluptatum nullable: true current_treatments: type: string description: '' example: et nullable: true family_history: type: string description: '' example: quis nullable: true blood_pressure: type: string description: '' example: ipsum nullable: true heart_rate: type: integer description: '' example: 9 nullable: true respiratory_rate: type: integer description: '' example: 1 nullable: true temperature_c: type: number description: '' example: 268930.82 nullable: true spo2: type: integer description: '' example: 9 nullable: true blood_glucose: type: number description: '' example: 37372.0 nullable: true weight_kg: type: number description: '' example: 65223.032 nullable: true height_cm: type: number description: '' example: 312512999.99 nullable: true bmi: type: number description: '' example: 4.0 nullable: true pain_score: type: integer description: '' example: 14 nullable: true general_condition: type: string description: '' example: altered nullable: true enum: - good - altered - critical general_condition_notes: type: string description: '' example: sit nullable: true physical_examination: type: string description: '' example: ut nullable: true hypothesis: type: string description: '' example: non nullable: true icd10_code: type: string description: '' example: eos nullable: true severity: type: string description: '' example: mild nullable: true enum: - mild - moderate - severe - critical discharge_decision: type: string description: '' example: home nullable: true enum: - home - hospitalized - referred - deceased next_appointment: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true additionnal_notes: type: string description: '' example: saepe nullable: true /api/medical-pages: post: summary: 'Ajouter une page de carnet médical' operationId: ajouterUnePageDeCarnetMdical description: '' parameters: [] responses: { } tags: - 'Page Médicale' requestBody: required: true content: application/json: schema: type: object properties: medical_book_id: type: integer description: 'The id of an existing record in the medical_books table.' example: 13 nullable: false department_id: type: integer description: 'The id of an existing record in the departments table.' example: 8 nullable: true doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 19 nullable: false consultation_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: false reason_for_visit: type: string description: '' example: dolore nullable: false clinical_notes: type: string description: '' example: voluptatibus nullable: false diagnosis: type: string description: '' example: iure nullable: false free_notes: type: string description: '' example: ullam nullable: true recommendations: type: string description: '' example: null nullable: true status: type: string description: '' example: cancelled nullable: true enum: - pending - in_progress - completed - cancelled consultation_type: type: string description: '' example: follow_up nullable: true enum: - first_visit - follow_up - emergency disease_history: type: string description: '' example: voluptatibus nullable: true current_treatments: type: string description: '' example: nesciunt nullable: true family_history: type: string description: '' example: ex nullable: true blood_pressure: type: string description: '' example: dolorum nullable: true heart_rate: type: integer description: '' example: 19 nullable: true respiratory_rate: type: integer description: '' example: 7 nullable: true temperature_c: type: number description: '' example: 661512.2732758 nullable: true spo2: type: integer description: '' example: 16 nullable: true blood_glucose: type: number description: '' example: 245.592646952 nullable: true weight_kg: type: number description: '' example: 52.700114 nullable: true height_cm: type: number description: '' example: 65.531 nullable: true bmi: type: number description: '' example: 1995327.8 nullable: true pain_score: type: integer description: '' example: 1 nullable: true general_condition: type: string description: '' example: critical nullable: true enum: - good - altered - critical general_condition_notes: type: string description: '' example: facilis nullable: true physical_examination: type: string description: '' example: itaque nullable: true hypothesis: type: string description: '' example: ducimus nullable: true icd10_code: type: string description: '' example: eveniet nullable: true severity: type: string description: '' example: critical nullable: true enum: - mild - moderate - severe - critical discharge_decision: type: string description: '' example: hospitalized nullable: true enum: - home - hospitalized - referred - deceased next_appointment: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true additionnal_notes: type: string description: '' example: odit nullable: true required: - medical_book_id - doctor_id - consultation_date - reason_for_visit - clinical_notes - diagnosis '/api/medical-pages/{medical_page}': get: summary: "Afficher les infos d'une page de carnet médical" operationId: afficherLesInfosDunePageDeCarnetMdical description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/medical-pages/1 could not be found.' properties: message: type: string example: 'The route api/medical-pages/1 could not be found.' tags: - 'Page Médicale' put: summary: 'Modifier une page de carnet médical' operationId: modifierUnePageDeCarnetMdical description: '' parameters: [] responses: { } tags: - 'Page Médicale' requestBody: required: false content: application/json: schema: type: object properties: medical_book_id: type: integer description: 'The id of an existing record in the medical_books table.' example: 1 nullable: true department_id: type: integer description: 'The id of an existing record in the departments table.' example: 14 nullable: true doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 12 nullable: true consultation_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true reason_for_visit: type: string description: '' example: dicta nullable: true clinical_notes: type: string description: '' example: velit nullable: true diagnosis: type: string description: '' example: sunt nullable: true free_notes: type: string description: '' example: qui nullable: true recommendations: type: string description: '' example: ut nullable: true status: type: string description: '' example: pending nullable: true enum: - pending - in_progress - completed - cancelled consultation_type: type: string description: '' example: emergency nullable: true enum: - first_visit - follow_up - emergency disease_history: type: string description: '' example: itaque nullable: true current_treatments: type: string description: '' example: at nullable: true family_history: type: string description: '' example: animi nullable: true blood_pressure: type: string description: 'Le champ value ne peut contenir plus de 20 caractères.' example: toxfwvxqhk nullable: true heart_rate: type: integer description: '' example: 15 nullable: true respiratory_rate: type: integer description: '' example: 19 nullable: true temperature_c: type: number description: '' example: 0.32102 nullable: true spo2: type: integer description: '' example: 14 nullable: true blood_glucose: type: number description: '' example: 54.59219382 nullable: true weight_kg: type: number description: '' example: 9112.4 nullable: true height_cm: type: number description: '' example: 99821.58634019 nullable: true bmi: type: number description: '' example: 3753395.9479 nullable: true pain_score: type: integer description: '' example: 6 nullable: true general_condition: type: string description: '' example: critical nullable: true enum: - good - altered - critical general_condition_notes: type: string description: '' example: et nullable: true physical_examination: type: string description: '' example: aut nullable: true hypothesis: type: string description: '' example: voluptas nullable: true icd10_code: type: string description: '' example: in nullable: true severity: type: string description: '' example: mild nullable: true enum: - mild - moderate - severe - critical discharge_decision: type: string description: '' example: home nullable: true enum: - home - hospitalized - referred - deceased next_appointment: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true additionnal_notes: type: string description: '' example: et nullable: true parameters: - in: path name: medical_page description: '' example: 1 required: true schema: type: integer /api/medical-pages/trash: post: summary: 'Archiver plusieurs medical_pages' operationId: archiverPlusieursMedicalPages description: '' parameters: [] responses: { } tags: - 'Page Médicale' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medical_pages table.' example: - 15 items: type: integer required: - ids /api/medical-pages/restore: post: summary: 'Restaurer plusieurs medical_pages' operationId: restaurerPlusieursMedicalPages description: '' parameters: [] responses: { } tags: - 'Page Médicale' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medical_pages table.' example: - 19 items: type: integer required: - ids /api/permissions/all: post: summary: 'Afficher la liste des permissions' operationId: afficherLaListeDesPermissions description: '' parameters: [] responses: { } tags: - Permissions requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 72 nullable: true nbre_items: type: integer description: '' example: 15 nullable: true filter_value: type: string description: '' example: asperiores nullable: true ressource: type: string description: '' example: voluptas nullable: true /api/permissions: post: summary: '' operationId: postApiPermissions description: '' parameters: [] responses: { } tags: - Permissions requestBody: required: true content: application/json: schema: type: object properties: permissions: type: array description: 'Le champ value doit contenir au moins 1 éléments.' example: - [] items: type: object properties: name: type: string description: '' example: exercitationem nullable: false description: type: string description: '' example: 'Earum recusandae et est illo.' nullable: true ressource: type: string description: '' example: beatae nullable: false code: type: string description: '' example: qui nullable: true required: - name - ressource required: - permissions '/api/permissions/{permission}': get: summary: 'Afficher une permission spécifique' operationId: afficherUnePermissionSpcifique description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/permissions/maiores could not be found.' properties: message: type: string example: 'The route api/permissions/maiores could not be found.' tags: - Permissions put: summary: 'Mettre a jour une permission spécifique' operationId: mettreAJourUnePermissionSpcifique description: '' parameters: [] responses: { } tags: - Permissions requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: nobis nullable: false permissions: type: array description: '' example: - [] items: type: object properties: description: type: string description: '' example: 'Debitis nihil fugiat ea eius asperiores et.' nullable: true ressource: type: string description: '' example: libero nullable: true code: type: string description: '' example: praesentium nullable: true required: - name parameters: - in: path name: permission description: 'The permission.' example: maiores required: true schema: type: string /api/medication-batches/all: post: summary: '' operationId: postApiMedicationBatchesAll description: '' parameters: [] responses: { } tags: - 'Pharmacie — Lots & Stock' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 25 nullable: true nbre_items: type: integer description: '' example: 9 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: uadbvouzpunqlnkhnpteoyf nullable: true start_date: type: string description: 'Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true medication_id: type: integer description: 'The id of an existing record in the medications table.' example: 17 nullable: true expiry_alert: type: boolean description: '' example: true nullable: true trashed: type: boolean description: '' example: false nullable: true /api/medication-batches: post: summary: '' operationId: postApiMedicationBatches description: '' parameters: [] responses: { } tags: - 'Pharmacie — Lots & Stock' requestBody: required: true content: application/json: schema: type: object properties: medication_id: type: integer description: 'The id of an existing record in the medications table.' example: 1 nullable: false batch_number: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: cyqsvtmpkzpyffkvggp nullable: false expiry_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: false quantity_in: type: integer description: 'Le champ value doit être au moins 1.' example: 65 nullable: false purchase_price: type: number description: 'Le champ value doit être au moins 0.' example: 1 nullable: true supplier: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: lw nullable: true received_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: false required: - medication_id - batch_number - expiry_date - quantity_in - received_date '/api/medication-batches/{medication_batch}': get: summary: '' operationId: getApiMedicationBatchesMedication_batch description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/medication-batches/16 could not be found.' properties: message: type: string example: 'The route api/medication-batches/16 could not be found.' tags: - 'Pharmacie — Lots & Stock' put: summary: '' operationId: putApiMedicationBatchesMedication_batch description: '' parameters: [] responses: { } tags: - 'Pharmacie — Lots & Stock' requestBody: required: false content: application/json: schema: type: object properties: batch_number: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: eovumbdivu nullable: true expiry_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true quantity_in: type: integer description: 'Le champ value doit être au moins 0.' example: 32 nullable: true purchase_price: type: number description: 'Le champ value doit être au moins 0.' example: 87 nullable: true supplier: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: yhclrpmppoxd nullable: true received_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true expiry_alert: type: boolean description: '' example: false nullable: true parameters: - in: path name: medication_batch description: '' example: 16 required: true schema: type: integer /api/medication-batches/trash: post: summary: '' operationId: postApiMedicationBatchesTrash description: '' parameters: [] responses: { } tags: - 'Pharmacie — Lots & Stock' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medication_batches table.' example: - 10 items: type: integer /api/medication-batches/restore: post: summary: '' operationId: postApiMedicationBatchesRestore description: '' parameters: [] responses: { } tags: - 'Pharmacie — Lots & Stock' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medication_batches table.' example: - 11 items: type: integer /api/care-schedules/all: post: summary: 'Lister les plannings de soins' operationId: listerLesPlanningsDeSoins description: '' parameters: [] responses: { } tags: - 'Planification des soins' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 16 nullable: true nbre_items: type: integer description: '' example: 8 nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: pyulmhlvjoxvexsr nullable: true patient_id: type: string description: 'The id of an existing record in the users table.' example: null nullable: true is_active: type: boolean description: '' example: true nullable: true admission_id: type: string description: '' example: null nullable: true medical_page_id: type: string description: '' example: null nullable: true trashed: type: boolean description: '' example: true nullable: true /api/care-schedules: post: summary: "Ajout d'un planning de soin" operationId: ajoutDunPlanningDeSoin description: '' parameters: [] responses: { } tags: - 'Planification des soins' requestBody: required: true content: application/json: schema: type: object properties: patient_id: type: string description: 'The id of an existing record in the users table.' example: sed nullable: false admission_id: type: integer description: '' example: 13 nullable: true medical_page_id: type: string description: '' example: voluptatem nullable: false nursing_act_catalog_id: type: string description: '' example: at nullable: false medication_id: type: string description: '' example: null nullable: true act_name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: mqtlmobmanjsqzukfjdaw nullable: false dosage: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: yyldzldpzcgqykqrnmpkroxah nullable: true scheduled_time: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true frequency: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: iuwxds nullable: false frequence_number: type: number description: '' example: 5579516.7983 nullable: false start_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: false end_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true is_active: type: boolean description: '' example: true nullable: true notes: type: string description: '' example: cum nullable: true required: - patient_id - medical_page_id - nursing_act_catalog_id - act_name - frequency - frequence_number - start_date '/api/care-schedules/{care_schedule}': get: summary: 'Afficher un planning de soin' operationId: afficherUnPlanningDeSoin description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/care-schedules/1 could not be found.' properties: message: type: string example: 'The route api/care-schedules/1 could not be found.' tags: - 'Planification des soins' put: summary: 'Modifier un planning de soin' operationId: modifierUnPlanningDeSoin description: '' parameters: [] responses: { } tags: - 'Planification des soins' requestBody: required: false content: application/json: schema: type: object properties: patient_id: type: string description: 'The id of an existing record in the users table.' example: null nullable: true admission_id: type: integer description: '' example: 6 nullable: true medical_page_id: type: string description: 'The id of an existing record in the medical_pages table.' example: null nullable: true nursing_act_catalog_id: type: string description: 'The id of an existing record in the nursing_act_catalogs table.' example: null nullable: true medication_id: type: string description: 'The id of an existing record in the medications table.' example: null nullable: true act_name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: ximdpeqtxwd nullable: true dosage: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: kwqj nullable: true scheduled_time: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true frequency: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: vtf nullable: true frequence_number: type: number description: '' example: 23244.0 nullable: true start_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Le champ value doit être une date après ou égale à start_date.' example: '2099-03-05' nullable: true is_active: type: boolean description: '' example: true nullable: true notes: type: string description: '' example: at nullable: true parameters: - in: path name: care_schedule description: '' example: 1 required: true schema: type: integer /api/care-schedules/trash: post: summary: 'Archiver plusieurs plannings de soins' operationId: archiverPlusieursPlanningsDeSoins description: '' parameters: [] responses: { } tags: - 'Planification des soins' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the care_schedules table.' example: - 14 items: type: integer required: - ids /api/care-schedules/restore: post: summary: 'Restaurer plusieurs plannings de soins' operationId: restaurerPlusieursPlanningsDeSoins description: '' parameters: [] responses: { } tags: - 'Planification des soins' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the care_schedules table.' example: - 14 items: type: integer required: - ids /api/care-schedules/destroy: post: summary: 'Suppression définitive' operationId: suppressionDfinitive description: '' parameters: [] responses: { } tags: - 'Planification des soins' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the care_schedules table.' example: - 14 items: type: integer required: - ids /api/prescriptions/all: post: summary: 'Lister les prescriptions' operationId: listerLesPrescriptions description: '' parameters: [] responses: { } tags: - Prescriptions requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 14 nullable: true nbre_items: type: integer description: '' example: 14 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: jzhjgweqksd nullable: true patient_id: type: integer description: 'The id of an existing record in the users table.' example: 11 nullable: true medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 18 nullable: true status: type: string description: '' example: cancelled nullable: true enum: - pending - active - completed - cancelled start_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true end_date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true trashed: type: boolean description: '' example: true nullable: true /api/prescriptions: post: summary: 'Ajouter une prescription' operationId: ajouterUnePrescription description: '' parameters: [] responses: { } tags: - Prescriptions requestBody: required: true content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 14 nullable: true medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 17 nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: false end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d. Le champ value doit être une date après ou égale à start_date.' example: '2029-02-07' nullable: false frequency: type: string description: '' example: aliquid nullable: true dosage: type: string description: '' example: deleniti nullable: true description: type: string description: '' example: 'Earum et est sunt necessitatibus.' nullable: true status: type: string description: '' example: pending nullable: true enum: - pending - active - completed - cancelled medications: type: array description: '' example: - [] items: type: object properties: medication_id: type: integer description: 'The id of an existing record in the medications table.' example: 18 nullable: false dosage: type: integer description: 'Le champ value doit être au moins 1.' example: 52 nullable: false frequency: type: string description: '' example: distinctio nullable: false description: type: string description: '' example: 'Ipsa sint eos veniam totam.' nullable: true required: - medication_id - dosage - frequency required: - start_date - end_date - medications '/api/prescriptions/{prescription_id}': get: summary: "Afficher les infos d'une prescription" operationId: afficherLesInfosDunePrescription description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/prescriptions/3 could not be found.' properties: message: type: string example: 'The route api/prescriptions/3 could not be found.' tags: - Prescriptions put: summary: 'Modifier une prescription' operationId: modifierUnePrescription description: '' parameters: [] responses: { } tags: - Prescriptions requestBody: required: false content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 5 nullable: true medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 18 nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d. Le champ value doit être une date après ou égale à start_date.' example: '2053-04-11' nullable: true frequency: type: string description: '' example: magni nullable: true dosage: type: string description: '' example: ut nullable: true description: type: string description: '' example: 'Nesciunt adipisci debitis quod consequuntur sint.' nullable: true status: type: string description: '' example: pending nullable: true enum: - pending - active - completed - cancelled medications: type: array description: '' example: null items: type: object nullable: true properties: medication_id: type: integer description: 'The id of an existing record in the medications table.' example: 17 nullable: false dosage: type: integer description: 'Le champ value doit être au moins 1.' example: 21 nullable: false frequency: type: string description: '' example: molestiae nullable: false description: type: string description: '' example: 'Quia non qui odit aut.' nullable: true required: - medication_id - dosage - frequency parameters: - in: path name: prescription_id description: 'The ID of the prescription.' example: 3 required: true schema: type: integer /api/prescriptions/trash: post: summary: 'Archiver plusieurs prescriptions' operationId: archiverPlusieursPrescriptions description: '' parameters: [] responses: { } tags: - Prescriptions requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the prescriptions table.' example: - 2 items: type: integer required: - ids /api/prescriptions/restore: post: summary: 'Restaurer plusieurs prescriptions' operationId: restaurerPlusieursPrescriptions description: '' parameters: [] responses: { } tags: - Prescriptions requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the prescriptions table.' example: - 12 items: type: integer required: - ids /api/medication-prescriptions/all: post: summary: 'Lister les prescriptions médicamenteuses' operationId: listerLesPrescriptionsMdicamenteuses description: '' parameters: [] responses: { } tags: - 'Prescriptions médicamenteuses' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 38 nullable: true nbre_items: type: integer description: 'Le champ value doit être au moins 1.' example: 45 nullable: true filter_value: type: string description: '' example: aut nullable: true prescription_id: type: integer description: '' example: 20 nullable: true medication_id: type: integer description: '' example: 15 nullable: true trashed: type: boolean description: '' example: false nullable: true /api/medication-prescriptions: post: summary: "Ajout d'une prescription médicamenteuse" operationId: ajoutDunePrescriptionMdicamenteuse description: '' parameters: [] responses: { } tags: - 'Prescriptions médicamenteuses' requestBody: required: true content: application/json: schema: type: object properties: medication_id: type: string description: '' example: nulla nullable: false prescription_id: type: string description: '' example: consectetur nullable: false frequency: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: dvktpqterwzkmqfhxlgtp nullable: false frequence_number: type: number description: '' example: 110774.403614 nullable: false scheduled_time: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true dosage: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: ahrxvqmkarwwygdl nullable: true duration_days: type: integer description: 'Le champ value doit être au moins 1.' example: 47 nullable: false description: type: string description: '' example: 'Dolores laboriosam aut et quidem eum sed facere.' nullable: true required: - medication_id - prescription_id - frequency - frequence_number - duration_days '/api/medication-prescriptions/{medication_prescription}': get: summary: 'Afficher une prescription médicamenteuse' operationId: afficherUnePrescriptionMdicamenteuse description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/medication-prescriptions/1 could not be found.' properties: message: type: string example: 'The route api/medication-prescriptions/1 could not be found.' tags: - 'Prescriptions médicamenteuses' put: summary: 'Modifier une prescription médicamenteuse' operationId: modifierUnePrescriptionMdicamenteuse description: '' parameters: [] responses: { } tags: - 'Prescriptions médicamenteuses' requestBody: required: false content: application/json: schema: type: object properties: medication_id: type: string description: '' example: null nullable: true prescription_id: type: string description: '' example: null nullable: true frequency: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: yfwblocrm nullable: true frequence_number: type: number description: '' example: 657966601.7653 nullable: true scheduled_time: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true dosage: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: t nullable: true duration_days: type: integer description: 'Le champ value doit être au moins 1.' example: 1 nullable: true description: type: string description: '' example: 'Ducimus id velit sit fugit aut ratione doloribus aliquid.' nullable: true parameters: - in: path name: medication_prescription description: '' example: 1 required: true schema: type: integer /api/medication-prescriptions/trash: post: summary: 'Archiver plusieurs prescriptions médicamenteuses' operationId: archiverPlusieursPrescriptionsMdicamenteuses description: '' parameters: [] responses: { } tags: - 'Prescriptions médicamenteuses' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medication_prescription table.' example: - 12 items: type: integer /api/medication-prescriptions/restore: post: summary: 'Restaurer plusieurs prescriptions médicamenteuses' operationId: restaurerPlusieursPrescriptionsMdicamenteuses description: '' parameters: [] responses: { } tags: - 'Prescriptions médicamenteuses' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medication_prescription table.' example: - 8 items: type: integer /api/medication-prescriptions/destroy: post: summary: 'Suppression définitive' operationId: suppressionDfinitive description: '' parameters: [] responses: { } tags: - 'Prescriptions médicamenteuses' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medication_prescription table.' example: - 5 items: type: integer /api/medications-intakes/all: post: summary: 'Lister les prises de médicaments' operationId: listerLesPrisesDeMdicaments description: '' parameters: [] responses: { } tags: - 'Prises de Médicaments' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 23 nullable: true nbre_items: type: integer description: '' example: 16 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: fq nullable: true trashed: type: boolean description: '' example: false nullable: true prescription_id: type: integer description: 'The id of an existing record in the prescriptions table.' example: 14 nullable: true medication_id: type: integer description: 'The id of an existing record in the medications table.' example: 9 nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d. Le champ value doit être une date après ou égale à start_date.' example: '2104-09-25' nullable: true /api/medications-intakes: post: summary: 'Ajouter une prise de médicament' operationId: ajouterUnePriseDeMdicament description: '' parameters: [] responses: { } tags: - 'Prises de Médicaments' requestBody: required: true content: application/json: schema: type: object properties: prescription_id: type: integer description: 'The id of an existing record in the prescriptions table.' example: 10 nullable: false medication_id: type: integer description: 'The id of an existing record in the medications table.' example: 7 nullable: false is_taken: type: boolean description: '' example: true nullable: true date_time: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d H:i.' example: '2026-05-18 11:12' nullable: false required: - prescription_id - medication_id - date_time '/api/medications-intakes/{medication_intake}': get: summary: 'Afficher une prise de médicament' operationId: afficherUnePriseDeMdicament description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/medications-intakes/15 could not be found.' properties: message: type: string example: 'The route api/medications-intakes/15 could not be found.' tags: - 'Prises de Médicaments' put: summary: 'Modifier une prise de médicament' operationId: modifierUnePriseDeMdicament description: '' parameters: [] responses: { } tags: - 'Prises de Médicaments' requestBody: required: false content: application/json: schema: type: object properties: prescription_id: type: integer description: 'The id of an existing record in the prescriptions table.' example: 3 nullable: true medication_id: type: integer description: 'The id of an existing record in the medications table.' example: 4 nullable: true is_taken: type: boolean description: '' example: false nullable: true date_time: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d H:i.' example: '2026-05-18 11:12' nullable: true parameters: - in: path name: medication_intake description: '' example: 15 required: true schema: type: integer /api/medications-intakes/trash: post: summary: 'Archiver plusieurs prises de médicaments' operationId: archiverPlusieursPrisesDeMdicaments description: '' parameters: [] responses: { } tags: - 'Prises de Médicaments' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medication_intakes table.' example: - 8 items: type: integer required: - ids /api/medications-intakes/restore: post: summary: 'Restaurer plusieurs prises de médicaments' operationId: restaurerPlusieursPrisesDeMdicaments description: '' parameters: [] responses: { } tags: - 'Prises de Médicaments' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the medication_intakes table.' example: - 17 items: type: integer required: - ids /api/daily-reports/all: post: summary: 'Afficher la liste des rapports journaliers filtrés.' operationId: afficherLaListeDesRapportsJournaliersFiltrs description: '' parameters: [] responses: { } tags: - 'Rapports journalier / Daily reports' requestBody: required: false content: application/json: schema: type: object properties: pageItems: type: integer description: 'Le champ value doit être au moins 1.' example: 9 nullable: true nbreItems: type: integer description: 'Le champ value doit être au moins 1.' example: 57 nullable: true idUser: type: integer description: 'The id of an existing record in the users table.' example: 5 nullable: true date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true date_start: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true date_end: type: string description: 'Le champ value doit être une date valide. Le champ value doit être une date après ou égale à date_start.' example: '2047-07-28' nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: qcsuvcjox nullable: true /api/daily-reports: post: summary: 'Ajouter un nouveau rapport journalier.' operationId: ajouterUnNouveauRapportJournalier description: '' parameters: [] responses: { } tags: - 'Rapports journalier / Daily reports' requestBody: required: true content: application/json: schema: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 9 nullable: false name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: ypgmiagzuqmozvenspibicgz nullable: false date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true description: type: string description: '' example: 'Nam sint et et voluptatibus similique veniam.' nullable: true comments: type: string description: '' example: est nullable: true required: - user_id - name '/api/daily-reports/{daily_report_id}': get: summary: 'Afficher un rapport journalier spécifique.' operationId: afficherUnRapportJournalierSpcifique description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/daily-reports/15 could not be found.' properties: message: type: string example: 'The route api/daily-reports/15 could not be found.' tags: - 'Rapports journalier / Daily reports' put: summary: 'Update the specified resource in storage.' operationId: updateTheSpecifiedResourceInStorage description: '' parameters: [] responses: { } tags: - 'Rapports journalier / Daily reports' requestBody: required: false content: application/json: schema: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 7 nullable: true name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: zpypxodaws nullable: true date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true description: type: string description: '' example: 'Culpa cupiditate fugiat consequatur enim fuga.' nullable: true comments: type: string description: '' example: est nullable: true parameters: - in: path name: daily_report_id description: 'The ID of the daily report.' example: 15 required: true schema: type: integer /api/daily-reports/trash: post: summary: 'Archivage multiple des rapports journaliers' operationId: archivageMultipleDesRapportsJournaliers description: '' parameters: [] responses: { } tags: - 'Rapports journalier / Daily reports' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the daily_reports table.' example: - 11 items: type: integer /api/daily-reports/restore: post: summary: 'Restauration multiple des rapports journaliers' operationId: restaurationMultipleDesRapportsJournaliers description: '' parameters: [] responses: { } tags: - 'Rapports journalier / Daily reports' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the daily_reports table.' example: - 18 items: type: integer /api/daily-reports/destroy: post: summary: 'Fonction de suppression définitive multiple des rapports journaliers' operationId: fonctionDeSuppressionDfinitiveMultipleDesRapportsJournaliers description: '' parameters: [] responses: { } tags: - 'Rapports journalier / Daily reports' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the daily_reports table.' example: - 1 items: type: integer /api/recipes/all: post: summary: 'Lister les recettes' operationId: listerLesRecettes description: '' parameters: [] responses: { } tags: - Recettes requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 73 nullable: true nbre_items: type: integer description: '' example: 16 nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: wtygtnymbchbwqhj nullable: true is_low_potassium: type: boolean description: '' example: false nullable: true is_low_sodium: type: boolean description: '' example: true nullable: true /api/recipes: post: summary: 'Ajouter une recette' operationId: ajouterUneRecette description: '' parameters: [] responses: { } tags: - Recettes requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: ipsum nullable: false description: type: string description: '' example: 'Nesciunt porro eaque qui numquam qui autem reprehenderit.' nullable: true instructions: type: string description: '' example: nostrum nullable: true preparation_time: type: integer description: '' example: 9 nullable: true servings: type: integer description: '' example: 14 nullable: true is_low_potassium: type: boolean description: '' example: true nullable: true is_low_sodium: type: boolean description: '' example: true nullable: true calories: type: integer description: '' example: 19 nullable: true sodium_mg: type: integer description: '' example: 1 nullable: true potassium_mg: type: integer description: '' example: 19 nullable: true photo: type: string description: '' example: vel nullable: true foods: type: array description: '' example: - [] items: type: object properties: food_id: type: integer description: 'The id of an existing record in the food table.' example: 15 nullable: false quantity: type: string description: '' example: blanditiis nullable: false description: type: string description: '' example: 'Odit ullam ullam error et.' nullable: true required: - food_id - quantity required: - name - foods '/api/recipes/{recipe_id}': get: summary: "Afficher les infos d'une recette" operationId: afficherLesInfosDuneRecette description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/recipes/16 could not be found.' properties: message: type: string example: 'The route api/recipes/16 could not be found.' tags: - Recettes put: summary: 'Modifier une recette' operationId: modifierUneRecette description: '' parameters: [] responses: { } tags: - Recettes requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: '' example: blanditiis nullable: true description: type: string description: '' example: 'Incidunt dolorum et perferendis sint.' nullable: true instructions: type: string description: '' example: at nullable: true preparation_time: type: string description: '' example: sapiente nullable: true servings: type: string description: '' example: excepturi nullable: true is_low_potassium: type: boolean description: '' example: false nullable: true is_low_sodium: type: boolean description: '' example: false nullable: true calories: type: string description: '' example: modi nullable: true sodium_mg: type: string description: '' example: minus nullable: true potassium_mg: type: string description: '' example: pariatur nullable: true photo: type: string description: '' example: quo nullable: true foods: type: array description: '' example: null items: type: object nullable: true properties: food_id: type: integer description: 'The id of an existing record in the food table.' example: 5 nullable: false quantity: type: string description: '' example: qui nullable: false description: type: string description: '' example: 'Et qui reiciendis sint et.' nullable: true required: - food_id - quantity parameters: - in: path name: recipe_id description: 'The ID of the recipe.' example: 16 required: true schema: type: integer /api/recipes/trash: post: summary: 'Archiver plusieurs recettes' operationId: archiverPlusieursRecettes description: '' parameters: [] responses: { } tags: - Recettes requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the recipes table.' example: - 18 items: type: integer required: - ids /api/recipes/restore: post: summary: 'Restaurer plusieurs recettes' operationId: restaurerPlusieursRecettes description: '' parameters: [] responses: { } tags: - Recettes requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the recipes table.' example: - 7 items: type: integer required: - ids /api/salary-deductions/all: post: summary: 'Afficher la liste filtrée des retenues sur salaire' operationId: afficherLaListeFiltreDesRetenuesSurSalaire description: '' parameters: [] responses: { } tags: - 'Retenue sur salaire / Salary deduction' requestBody: required: false content: application/json: schema: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 10 nullable: true user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 20 nullable: true date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true status: type: string description: '' example: rejected nullable: true enum: - pending_approval - in_progress - approved - rejected page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 30 nullable: true trashed: type: boolean description: '' example: true nullable: true nbre_items: type: integer description: '' example: 14 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: agqjsrfj nullable: true /api/salary-deductions: post: summary: 'Show the form for creating a new resource.' operationId: showTheFormForCreatingANewResource description: '' parameters: [] responses: { } tags: - 'Retenue sur salaire / Salary deduction' requestBody: required: true content: application/json: schema: type: object properties: salary_deductions: type: array description: '' example: - [] items: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 14 nullable: false user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 15 nullable: true reason: type: string description: '' example: quidem nullable: false amount: type: number description: 'Le champ value doit être au moins 0.' example: 49 nullable: false date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: false status: type: string description: '' example: in_progress nullable: true enum: - pending_approval - in_progress - approved - rejected required: - user_id - reason - amount - date required: - salary_deductions '/api/salary-deductions/{salary_deduction}': get: summary: 'Afficher une retenue sur salaire spécifique' operationId: afficherUneRetenueSurSalaireSpcifique description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/salary-deductions/1 could not be found.' properties: message: type: string example: 'The route api/salary-deductions/1 could not be found.' tags: - 'Retenue sur salaire / Salary deduction' put: summary: 'Mettre à jour une retenue sur salaire spécifique' operationId: mettreJourUneRetenueSurSalaireSpcifique description: '' parameters: [] responses: { } tags: - 'Retenue sur salaire / Salary deduction' requestBody: required: false content: application/json: schema: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 12 nullable: true user_approve_id: type: integer description: 'The id of an existing record in the users table.' example: 17 nullable: true reason: type: string description: '' example: eaque nullable: true amount: type: number description: 'Le champ value doit être au moins 0.' example: 56 nullable: true date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true status: type: string description: '' example: rejected nullable: true enum: - pending_approval - in_progress - approved - rejected parameters: - in: path name: salary_deduction description: '' example: 1 required: true schema: type: integer /api/salary-deductions/trash: post: summary: 'Archiver (soft delete) les retenues sur salaire spécifiées.' operationId: archiversoftDeleteLesRetenuesSurSalaireSpcifies description: '' parameters: [] responses: { } tags: - 'Retenue sur salaire / Salary deduction' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the salary_deductions table.' example: - 12 items: type: integer required: - ids /api/salary-deductions/restore: post: summary: 'Restaurer les feedbacks archivés.' operationId: restaurerLesFeedbacksArchivs description: '' parameters: [] responses: { } tags: - 'Retenue sur salaire / Salary deduction' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the salary_deductions table.' example: - 18 items: type: integer required: - ids /api/roles/all: post: summary: 'Lister les roles' operationId: listerLesRoles description: '' parameters: [] responses: { } tags: - Rôles requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 28 nullable: true nbre_items: type: integer description: '' example: 17 nullable: true filter_value: type: string description: '' example: illum nullable: true types: type: array description: '' example: - rerum items: type: string /api/roles: post: summary: 'Ajouter une liste de role' operationId: ajouterUneListeDeRole description: '' parameters: [] responses: { } tags: - Rôles requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: ut nullable: false permissions: type: array description: 'The id of an existing record in the permissions table.' example: - 17 items: type: integer description: type: string description: '' example: 'Unde nesciunt architecto maiores.' nullable: true type: type: string description: '' example: culpa nullable: true required: - name - permissions '/api/roles/{role_id}': get: summary: 'Afficher un role spécifique' operationId: afficherUnRoleSpcifique description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/roles/1 could not be found.' properties: message: type: string example: 'The route api/roles/1 could not be found.' tags: - Rôles put: summary: 'Modifier ou un role spécifique' operationId: modifierOuUnRoleSpcifique description: '' parameters: [] responses: { } tags: - Rôles requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: '' example: voluptas nullable: true permissions: type: array description: 'The id of an existing record in the permissions table.' example: - 18 items: type: integer nullable: true description: type: string description: '' example: 'Optio recusandae commodi impedit dolor dolores inventore blanditiis.' nullable: true type: type: string description: '' example: qui nullable: true parameters: - in: path name: role_id description: 'The ID of the role.' example: 1 required: true schema: type: integer /api/sanctions/all: post: summary: 'List sanctions' operationId: listSanctions description: '' parameters: [] responses: { } tags: - Sanctions requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: '' example: 7 nullable: true nbre_items: type: integer description: '' example: 10 nullable: true filter_value: type: string description: '' example: doloremque nullable: true trashed: type: boolean description: '' example: true nullable: true user_id: type: integer description: 'The id of an existing record in the users table.' example: 2 nullable: true type: type: string description: '' example: rem nullable: true created_by: type: integer description: 'The id of an existing record in the users table.' example: 2 nullable: true '/api/sanctions/{sanction_id}': get: summary: 'Show sanction' operationId: showSanction description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/sanctions/2 could not be found.' properties: message: type: string example: 'The route api/sanctions/2 could not be found.' tags: - Sanctions put: summary: 'Update sanction' operationId: updateSanction description: '' parameters: [] responses: { } tags: - Sanctions requestBody: required: false content: application/json: schema: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 5 nullable: true type: type: string description: '' example: iusto nullable: true reasons: type: string description: '' example: modi nullable: true description: type: string description: '' example: 'Quo aut eum labore quos.' nullable: true parameters: - in: path name: sanction_id description: 'The ID of the sanction.' example: 2 required: true schema: type: integer /api/sanctions: post: summary: 'Create sanctions' operationId: createSanctions description: '' parameters: [] responses: { } tags: - Sanctions requestBody: required: true content: application/json: schema: type: object properties: sanctions: type: array description: 'Le champ value doit contenir au moins 1 éléments.' example: - [] items: type: object properties: user_id: type: integer description: 'The id of an existing record in the users table.' example: 4 nullable: false type: type: string description: '' example: alias nullable: false reasons: type: string description: '' example: dolorem nullable: false description: type: string description: '' example: 'Aut officiis facilis nobis voluptates magni.' nullable: false required: - user_id - type - reasons - description required: - sanctions /api/sanctions/trash: post: summary: Trash operationId: trash description: '' parameters: [] responses: { } tags: - Sanctions requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the sanctions table.' example: - 18 items: type: integer /api/sanctions/restore: post: summary: Restore operationId: restore description: '' parameters: [] responses: { } tags: - Sanctions requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the sanctions table.' example: - 18 items: type: integer /api/sanctions/destroy: post: summary: 'Destroy permanently' operationId: destroyPermanently description: '' parameters: [] responses: { } tags: - Sanctions requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the sanctions table.' example: - 15 items: type: integer /api/nursing-acts/all: post: summary: '' operationId: postApiNursingActsAll description: '' parameters: [] responses: { } tags: - 'Soins Infirmiers' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 68 nullable: true nbre_items: type: integer description: '' example: 20 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: qleuzkgxmsbupblhqnjxxg nullable: true patient_id: type: integer description: 'The id of an existing record in the users table.' example: 14 nullable: true nurse_id: type: integer description: 'The id of an existing record in the users table.' example: 5 nullable: true medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 17 nullable: true act_type: type: string description: '' example: enim nullable: true external_prescription_ref: type: string description: '' example: non nullable: true nursing_act_origin: type: string description: '' example: id nullable: true date_from: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true date_to: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true trashed: type: boolean description: '' example: false nullable: true /api/nursing-acts: post: summary: '' operationId: postApiNursingActs description: '' parameters: [] responses: { } tags: - 'Soins Infirmiers' requestBody: required: false content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 20 nullable: true nurse_id: type: integer description: 'The id of an existing record in the users table.' example: 19 nullable: true medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 7 nullable: true nursing_act_catalog_id: type: integer description: 'The id of an existing record in the nursing_act_catalogs table.' example: 9 nullable: true patient_check_up_id: type: integer description: 'The id of an existing record in the patient_check_ups table.' example: 8 nullable: true act_name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: iqgdtjdeuoeaa nullable: true act_type: type: string description: '' example: dolorum nullable: true reason: type: string description: '' example: dolorum nullable: true acts_performed: type: string description: '' example: voluptas nullable: true patient_evolution: type: string description: '' example: totam nullable: true observations: type: string description: '' example: et nullable: true incidents: type: string description: '' example: sed nullable: true external_prescription_ref: type: string description: '' example: provident nullable: true nursing_act_origin: type: string description: '' example: provident nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 73 nullable: true date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true hour: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true '/api/nursing-acts/{nursing_act}': get: summary: '' operationId: getApiNursingActsNursing_act description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/nursing-acts/1 could not be found.' properties: message: type: string example: 'The route api/nursing-acts/1 could not be found.' tags: - 'Soins Infirmiers' put: summary: '' operationId: putApiNursingActsNursing_act description: '' parameters: [] responses: { } tags: - 'Soins Infirmiers' requestBody: required: false content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 2 nullable: true nurse_id: type: integer description: 'The id of an existing record in the users table.' example: 17 nullable: true medical_page_id: type: integer description: 'The id of an existing record in the medical_pages table.' example: 14 nullable: true nursing_act_catalog_id: type: integer description: 'The id of an existing record in the nursing_act_catalogs table.' example: 9 nullable: true patient_check_up_id: type: integer description: 'The id of an existing record in the patient_check_ups table.' example: 17 nullable: true act_name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: cbjurzar nullable: true act_type: type: string description: '' example: nostrum nullable: true reason: type: string description: '' example: repellat nullable: true acts_performed: type: string description: '' example: dolores nullable: true patient_evolution: type: string description: '' example: est nullable: true observations: type: string description: '' example: odio nullable: true incidents: type: string description: '' example: accusantium nullable: true external_prescription_ref: type: string description: '' example: qui nullable: true nursing_act_origin: type: string description: '' example: mollitia nullable: true price: type: number description: 'Le champ value doit être au moins 0.' example: 66 nullable: true date: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:13' nullable: true hour: type: string description: 'Must be a valid date in the format H:i.' example: '11:12' nullable: true parameters: - in: path name: nursing_act description: '' example: 1 required: true schema: type: integer /api/nursing-acts/trash: post: summary: '' operationId: postApiNursingActsTrash description: '' parameters: [] responses: { } tags: - 'Soins Infirmiers' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the nursing_acts table.' example: - 2 items: type: integer /api/nursing-acts/restore: post: summary: '' operationId: postApiNursingActsRestore description: '' parameters: [] responses: { } tags: - 'Soins Infirmiers' requestBody: required: false content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the nursing_acts table.' example: - 19 items: type: integer /api/dialysis-sessions/all: post: summary: 'Lister les séances de dialyse' operationId: listerLesSancesDeDialyse description: '' parameters: [] responses: { } tags: - 'Séances de dialyse' requestBody: required: false content: application/json: schema: type: object properties: page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 19 nullable: true nbre_items: type: integer description: '' example: 19 nullable: true filter_value: type: string description: 'Le champ value ne peut contenir plus de 100 caractères.' example: ijzlzioddcnilvcsuctaed nullable: true trashed: type: boolean description: '' example: false nullable: true patient_id: type: integer description: 'The id of an existing record in the users table.' example: 1 nullable: true doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 10 nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d. Le champ value doit être une date après ou égale à start_date.' example: '2091-08-19' nullable: true /api/dialysis-sessions: post: summary: 'Ajouter une séance de dialyse' operationId: ajouterUneSanceDeDialyse description: '' parameters: [] responses: { } tags: - 'Séances de dialyse' requestBody: required: true content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 9 nullable: false doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 12 nullable: false session_start: type: string description: '' example: ut nullable: false session_end: type: string description: '' example: eos nullable: true weight_before: type: string description: '' example: quae nullable: true weight_after: type: string description: '' example: rerum nullable: true fluid_removed: type: string description: '' example: aperiam nullable: true blood_pressure_post: type: string description: '' example: consequuntur nullable: true side_effects: type: string description: '' example: sed nullable: true description: type: string description: '' example: 'Possimus quidem voluptatem et repudiandae et a sit placeat.' nullable: true observation: type: string description: '' example: sed nullable: true status: type: string description: '' example: cancelled nullable: true enum: - pending - done - cancelled required: - patient_id - doctor_id - session_start '/api/dialysis-sessions/{dialysis_session}': get: summary: 'Afficher une séance de dialyse' operationId: afficherUneSanceDeDialyse description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/dialysis-sessions/15 could not be found.' properties: message: type: string example: 'The route api/dialysis-sessions/15 could not be found.' tags: - 'Séances de dialyse' put: summary: 'Modifier une séance de dialyse' operationId: modifierUneSanceDeDialyse description: '' parameters: [] responses: { } tags: - 'Séances de dialyse' requestBody: required: false content: application/json: schema: type: object properties: patient_id: type: integer description: 'The id of an existing record in the users table.' example: 18 nullable: true doctor_id: type: integer description: 'The id of an existing record in the users table.' example: 18 nullable: true session_start: type: string description: '' example: soluta nullable: true session_end: type: string description: '' example: vel nullable: true weight_before: type: string description: '' example: null nullable: true weight_after: type: string description: '' example: null nullable: true fluid_removed: type: string description: '' example: null nullable: true blood_pressure_post: type: string description: '' example: similique nullable: true side_effects: type: string description: '' example: unde nullable: true status: type: string description: '' example: done nullable: true enum: - pending - done - cancelled parameters: - in: path name: dialysis_session description: '' example: 15 required: true schema: type: integer /api/dialysis-sessions/trash: post: summary: 'Archiver plusieurs séances de dialyse' operationId: archiverPlusieursSancesDeDialyse description: '' parameters: [] responses: { } tags: - 'Séances de dialyse' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the dialysis_sessions table.' example: - 11 items: type: integer required: - ids /api/dialysis-sessions/restore: post: summary: 'Restaurer plusieurs séances de dialyse' operationId: restaurerPlusieursSancesDeDialyse description: '' parameters: [] responses: { } tags: - 'Séances de dialyse' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'The id of an existing record in the dialysis_sessions table.' example: - 19 items: type: integer required: - ids /api/upload-photo: post: summary: "Upload d'un fichier" operationId: uploadDunFichier description: '' parameters: [] responses: { } tags: - 'Upload de fichier' requestBody: required: true content: application/json: schema: type: object properties: photo: type: string description: 'Le champ value ne peut contenir plus de 5120 caractères.' example: hnedauxtausonpjjmrfoihn nullable: false required: - photo /api/users/all: post: summary: 'Fonction qui permet de recuperer la liste des utilisateurs' operationId: fonctionQuiPermetDeRecupererLaListeDesUtilisateurs description: '' parameters: [] responses: { } tags: - Utilisateurs requestBody: required: false content: application/json: schema: type: object properties: role_id: type: integer description: 'The id of an existing record in the roles table.' example: 10 nullable: true page_items: type: integer description: 'Le champ value doit être au moins 1.' example: 65 nullable: true nbre_items: type: integer description: '' example: 4 nullable: true filter_value: type: string description: '' example: cupiditate nullable: true in_order_name: type: boolean description: '' example: false nullable: true start_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true end_date: type: string description: 'Le champ value doit être une date valide. Must be a valid date in the format Y-m-d.' example: '2026-05-18' nullable: true health_center_id: type: integer description: '' example: 6 nullable: true department_id: type: integer description: '' example: 4 nullable: true coverage_type: type: string description: '' example: complementary nullable: true enum: - obligatory - complementary - partial - none marital_status: type: string description: '' example: widowed nullable: true enum: - single - married - widowed - divorced is_patient: type: boolean description: '' example: false nullable: true insurance_name: type: string description: '' example: sunt nullable: true company_name: type: string description: '' example: qui nullable: true role_types: type: array description: '' example: - eligendi items: type: string /api/users: post: summary: "Fonction qui permet d'ajouter un utilisateur sans passer par la verification" operationId: fonctionQuiPermetDajouterUnUtilisateurSansPasserParLaVerification description: '' parameters: [] responses: { } tags: - Utilisateurs requestBody: required: true content: application/json: schema: type: object properties: username: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: kezn nullable: true firstname: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: lleoldus nullable: false lastname: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: zptu nullable: true gender: type: string description: '' example: male nullable: false enum: - male - female birthday: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true birth_place: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: idjakawcbpedsetabgwfthdom nullable: true marital_status: type: string description: '' example: married nullable: true enum: - single - married - widowed - divorced nationality: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: ikiobdorhkljyr nullable: true nui: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: bmszfrt nullable: true niss: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: rnrgxqdaqrsw nullable: true email: type: string description: 'Le champ value doit être une address e-mail valide. Le champ value ne peut contenir plus de 255 caractères.' example: abernathy.lottie@example.net nullable: true phone: type: string description: 'Le champ value ne peut contenir plus de 20 caractères.' example: sn nullable: true phone2: type: string description: 'Le champ value ne peut contenir plus de 20 caractères.' example: oevsoz nullable: true city: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: khqzzfptmonabcrc nullable: true address: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: tho nullable: true country: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: zpmrcmksouvgqqcfwqgo nullable: true profession: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: yseefs nullable: true preferred_payment_mode: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: cwcpdvawnadzko nullable: true password: type: string description: 'Le champ value doit contenir au moins 6 caractères.' example: '!eid of an existing record in the roles table.' example: 8 nullable: false health_center_id: type: integer description: '' example: 14 nullable: true department_id: type: integer description: '' example: 15 nullable: true mutuality_number: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: qodms nullable: true coverage_type: type: string description: '' example: none nullable: true enum: - obligatory - complementary - partial - none guardian_name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: pcissx nullable: true guardian_contact: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: dfmj nullable: true guardian_relation: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: ultyjcndwdctbi nullable: true insurance_name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: ipslirnbixejmwocwp nullable: true insurance_number: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: aspdz nullable: true company_name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: jsbqdnzztpyoambewfmcgfwi nullable: true is_patient: type: boolean description: '' example: false nullable: true reference: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: qvlmefemprrpftbldsmimoohj nullable: true cni: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: ixvgvhcwvdc nullable: true required: - firstname - gender - password - role_id '/api/users/{user_id}': get: summary: "Cette route permet d'afficher les informations d'un utilisateur" operationId: cetteRoutePermetDafficherLesInformationsDunUtilisateur description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/users/1 could not be found.' properties: message: type: string example: 'The route api/users/1 could not be found.' tags: - Utilisateurs parameters: - in: path name: user_id description: 'The ID of the user.' example: 1 required: true schema: type: integer '/api/users/update-password/{user}': put: summary: 'Changer un mot de passe' operationId: changerUnMotDePasse description: '' parameters: [] responses: { } tags: - Utilisateurs requestBody: required: true content: application/json: schema: type: object properties: password: type: string description: 'Le champ value doit contenir au moins 6 caractères.' example: '?tp~9@ag' nullable: false required: - password parameters: - in: path name: user description: 'Optional parameter.' required: true schema: type: integer examples: omitted: summary: 'When the value is omitted' value: '' present: summary: 'When the value is present' value: 1 '/api/users/{user}': put: summary: "Fonction permettant de mettre à jour les informations d'un utilisateur" operationId: fonctionPermettantDeMettreJourLesInformationsDunUtilisateur description: '' parameters: [] responses: { } tags: - Utilisateurs requestBody: required: false content: application/json: schema: type: object properties: firstname: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: vnwbwchkljiwciexlgzqwx nullable: true lastname: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: dhsojuumxzmr nullable: true gender: type: string description: '' example: female nullable: true enum: - male - female birthday: type: string description: 'Le champ value doit être une date valide.' example: '2026-05-18T11:12:12' nullable: true birth_place: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: psapwxtwr nullable: true marital_status: type: string description: '' example: divorced nullable: true enum: - single - married - widowed - divorced nationality: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: cxsmhehlramfrfdoh nullable: true nui: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: wsvpziuhirldcib nullable: true niss: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: tnymnxiiggjuotrjsddffyp nullable: true connexion_type: type: string description: '' example: phone nullable: true enum: - email - phone email: type: string description: 'Le champ value doit être une address e-mail valide. Le champ value ne peut contenir plus de 255 caractères.' example: okihn@example.org nullable: true phone: type: string description: 'Le champ value ne peut contenir plus de 20 caractères.' example: ojqywscokwkpzr nullable: true phone2: type: string description: 'Le champ value ne peut contenir plus de 20 caractères.' example: qvvrkzye nullable: true city: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: wlsmfmvtxhee nullable: true address: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: mpmxghfxp nullable: true country: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: uayrjabsuztbzugtpyvnhcnb nullable: true password: type: string description: 'Le champ value doit contenir au moins 6 caractères.' example: '7?1v4KhPnLt2u+"yaaLn' nullable: true photo: type: string description: '' example: facilis nullable: true specialty: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: bcnqqlfsqgduvxyfdogyqjya nullable: true license_number: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: yewjx nullable: true years_of_experience: type: integer description: 'Le champ value doit être au moins 0.' example: 43 nullable: true work_schedule: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: uouwxdtjyc nullable: true role_id: type: integer description: 'The id of an existing record in the roles table.' example: 11 nullable: true health_center_id: type: integer description: '' example: 11 nullable: true department_id: type: integer description: '' example: 6 nullable: true mutuality_number: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: kytwdptojiwk nullable: true coverage_type: type: string description: '' example: none nullable: true enum: - obligatory - complementary - partial - none guardian_name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: dnqaaqweqvrnclwgynv nullable: true guardian_contact: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: tiglrhzdiprjvdgeahf nullable: true guardian_relation: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: bwuos nullable: true insurance_name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: rrnmwnrraxmoiapmy nullable: true insurance_number: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: wqpwkzyaezzbomsreupovqgyo nullable: true company_name: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: ypsslcvpvkzkwrrxh nullable: true is_patient: type: boolean description: '' example: true nullable: true reference: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: bo nullable: true cni: type: string description: 'Le champ value ne peut contenir plus de 255 caractères.' example: xvggacreto nullable: true parameters: - in: path name: user description: 'Optional parameter.' required: true schema: type: integer examples: omitted: summary: 'When the value is omitted' value: '' present: summary: 'When the value is present' value: 1 /api/users/trash: post: summary: 'Fonction pour le multiple archivage des utilisateurs' operationId: fonctionPourLeMultipleArchivageDesUtilisateurs description: '' parameters: [] responses: { } tags: - Utilisateurs requestBody: required: false content: application/json: schema: type: object properties: user_ids: type: array description: '' example: - 3 items: type: integer /api/users/restore: post: summary: "Fonction de restauration multiples d'utilisateurs" operationId: fonctionDeRestaurationMultiplesDutilisateurs description: '' parameters: [] responses: { } tags: - Utilisateurs requestBody: required: false content: application/json: schema: type: object properties: user_ids: type: array description: '' example: - 11 items: type: integer /api/users/destroy: post: summary: "Fonction de suppression définitive multiple d'utilisateurs" operationId: fonctionDeSuppressionDfinitiveMultipleDutilisateurs description: '' parameters: [] responses: { } tags: - Utilisateurs requestBody: required: false content: application/json: schema: type: object properties: user_ids: type: array description: '' example: - 15 items: type: integer tags: - name: Admissions description: "\nGestion des hospitalisations des patients" - name: Authentification description: "\nGestion de l'authentification des utilisateurs" - name: 'Avance sur salaire / Salary advance' description: "\nGestion des avances sur salaire" - name: Avertissements description: 'Gestion des avertissements' - name: "Bons d'achats" description: "\nGestion des bons d'achat" - name: 'Caisse / Facturation' description: "\nGestion des factures et paiements MS-Care" - name: 'Carnet Médical' description: "\nGestion des carnets médicaux" - name: 'Catalogue Actes Infirmiers' description: '' - name: 'Catalogue Examens Laboratoire' description: '' - name: 'Centres de santé' description: "\nGestion des centres de santé" - name: Chat description: '' - name: 'Checkups patients' description: "\nGestion des checkups patients" - name: 'Clôture de Caisse' description: "\nGestion des clôtures journalières de caisse MS-Care" - name: Contrats description: "\n Gestion des contrats employés" - name: "Demande d'approvisionnement | Supply demand" description: "Contrôleur chargé de la gestion des demandes d'approvisionnement." - name: "Demande d'explication / Explanation Request" description: "\nGestion des demandes d'explication" - name: 'Demande de congé' description: 'Gestion des demandes de congé employé' - name: 'Demandes de Permissions' description: "\nContrôleur pour la gestion des demandes de permission des utilisateurs" - name: Départements description: "\nGestion des départements" - name: Endpoints description: '' - name: 'Exécutions de planning de soins' description: "\nGestion des exécutions de planning de soins" - name: 'Exécutions de prescriptions médicamenteuses' description: "\nGestion des exécutions de prescriptions médicamenteuses" - name: Forum description: '' - name: 'Gestion des Chambres' description: '' - name: Laboratoire description: "\nGestion des demandes et résultats d'examens laboratoire" - name: Lits description: "\nGestion des lits" - name: Médicaments description: "\nGestion des médicaments" - name: 'Notes de frais / Expense Reports' description: "\nGestion des notes de frais" - name: Nourritures description: "\nGestion des nourritures" - name: "Packs d'examens de laboratoire" description: "\nGestion des packs d'examens de laboratoire" - name: 'Page Médicale' description: "\nGestion de pages d'un carnet médical" - name: Permissions description: "\nGestion des permissions" - name: 'Pharmacie — Lots & Stock' description: '' - name: 'Planification des soins' description: "\nGestion des plannings de soins infirmiers" - name: Prescriptions description: "\nGestion des prescriptions" - name: 'Prescriptions médicamenteuses' description: "\nGestion des prescriptions médicamenteuses" - name: 'Prises de Médicaments' description: "\nGestion des prises de médicaments" - name: 'Rapports journalier / Daily reports' description: "\nGestion des rapports journaliers" - name: Recettes description: "\nGestion des recettes" - name: 'Retenue sur salaire / Salary deduction' description: "\nGestion des retenus sur salaire" - name: Rôles description: "\nGestion des rôles" - name: Sanctions description: "\nGestion des sanctions utilisateurs" - name: 'Soins Infirmiers' description: "\nGestion des actes infirmiers MS-Care" - name: 'Séances de dialyse' description: "\nGestion des séances de dialyse" - name: 'Upload de fichier' description: "\nGestion des uploads de fichiers" - name: Utilisateurs description: "\nGestion des utilisateurs" components: securitySchemes: default: type: http scheme: bearer description: 'You can retrieve your token by visiting your dashboard and clicking Generate API token.' security: - default: []