Jump to content
  • 0

Liens avec liste déroulante


Question

Bonjour

 

Dans ma création d'une base de donnée pour un cabinet dentaire je bute sur un problème de modification de donnée de rubrique lorsque je me sers de la liste déroulante qui utilise une liste de valeurs

Cette liste déroulante permet  dans le modele Patient, lorsque des devis on été enregistré, de sélectionner les dents soignées qui font partie d'une liste de valeurs. Ces dents soignées sont répertoriées dans une table dent avec le ZKF patient et le ZKP dent dans lequel a été recopié le ZKF du devis

Ainsi un patient est relié à son devis enregistré et la dent soignée est reliée au 2

On voit dans la photo ci dessous la table Dents avec 2 patient identifiés l'un avec 2 dents à soigner, l'autre avec 3.  On voit aussi comment j'ai paramètré la liste de valeurs qui permet l'utilisation de la liste déroulante

FJEPABH.png

Dans la 2eme photo on voit le lien entre les 2 tables. La table Dents est renseignée par importation depuis chaque devis enregistré.

bxOfopZ.png

Donc dans mon modèle patient j'ai une rubrique Dents::dent qui montre grâce à la liste de valeur les dents soignées pour chaque patient qui a un devis enregistré

Le souci c'est que si je sélectionne une dent dans cette liste déroulante, elle modifie la table Dents en remplaçant la 1ere valeur de N° de Dent qu'elle trouve pour le patient. Ainsi  1ere dent du patient 47 , la dent N° 12 est remplacée par le N° de la 2eme dent (14) quand je sélectionne la 12 dans la liste déroulante et ensuite ma liste déroulante ne comporte plus qu'une dent, la 14. Le but n'est que la sélection pour tri et pas la modification de la table Dent

Quelle est la subtilité qui m'échappe ? Y a t-il un problème d'architecture? Je suis "le nez dans le guidon" , ca doit être bête mais je ne le vois pas, j'ai déjà utilisé des listes déroulantes reprenant des valeurs de rubrique sans que cela se produise

Link to post
Share on other sites

13 answers to this question

Recommended Posts

  • 0
Il y a 2 heures, Sadlig a dit :

Le souci c'est que si je sélectionne une dent dans cette liste déroulante, elle modifie la table Dents en remplaçant la 1ere valeur de N° de Dent qu'elle trouve pour le patient

Oui, c'est tout à fait normal.

Il ne faut pas "modifier la dent". Ce que tu cherches à faire c'est "désigner une des dents du patients" dans un endroit précis, ça n'est pas modifier la dent.

Quel est cet endroit, où tu veux pouvoir sélectionner une des dents du gars ? Est-ce dans le devis ?

Link to post
Share on other sites
  • 0

Bonsoir,

si je peux me permettre, je ne suis pas très expérimenté, mais je pense qu’il faut créer une table avec des lignes de devis ou des visites.  Chaque ligne représente l’intervention avec les informations voulues: patient, date, dent,....comme des lignes de factures.

ce n’est qu’une idée😃

 

Link to post
Share on other sites
  • 0
Il y a 2 heures, Jérémie Gimenez a dit :

Oui, c'est tout à fait normal.

Il ne faut pas "modifier la dent". Ce que tu cherches à faire c'est "désigner une des dents du patients" dans un endroit précis, ça n'est pas modifier la dent.

Quel est cet endroit, où tu veux pouvoir sélectionner une des dents du gars ? Est-ce dans le devis ?

Oui je cherche à désignerons le but de trier, pas à sélectionner, et ceci sur le formulaire patient et ca doit être clairement visible.Ll'utilisateur doit dire quelle dent il sélectionne par désignation, cette désignation étant associée à une date pour effectuer une recherche

Voici l'architecture de la base

En fait le formulaire Patient lié a la table patient permet au moyen de boutons qui apparaissent quand les conditions sont reunies de creer manuellement  des devis ou automatiquement des devis preformates sur un formulaire de devis lié a la table devis et ceci au moyen d’une table externe. Tant qu’un devis en cours n’est pas enregistré, ils reste sur le formulaire et on peut le modifier a loisir. Une fois enregistré, le formulaire est vidé et le devis est importe sur le formulaire Devis enregistré destiné a etre imprimé. Ce formulaire est lié a la table Dev_Enreg et relié au patient par son ZKF (en arriere plan il y a une table soin relié a une table ligne devis qui fait le travail d’etablissement des lignes de devis.

Sur chaque fiche patient, si un ou des devis sont enregistrés a son nom,  apparait un bouton qui permet de les consulter.

il y a aussi une date de RDV qui si elle est renseigné permet de rechercher tous les devis a la meme date de facon a pouvoir les imprimer tous d’un coup. J’ai crée un script qui le permet, ca marche, mais evidement a condition qu’il n’y ait qu’un seul devis enregistré par patient. D’ou l’idée de les differencier au moyen des Numero de dent qui sont inscrit initialement dans le devis. Si un patient a plusieurs devis je veux pouvoir les selectionner de cette facon car sur le RDV, on sait quelle dent on va soigner.  C’est pourquoi j’ai crée une table dent, le numero de dent est pris sur la table ligne de devis du devis et transfère dans cette table avec le ZKF du devis et celui du patient au moment de l’enregistrement du devis.

Tout cela fonctionne tres bien, sauf cette discrimination du devis par le numero de dent est mal pensée au vu du resultat. Peut etre devrais je creuser du cote du devis enregistré et trouver un moyen de creer pour chaque patient une liste des dents soignées sans passer par une table dent. Voila, tu sais tout.....il y a un mois je n’y connaissais rien en base de données!!

J'ajoute que la table Edev_enreg du modele devis enregistrés lié à la table ligne de devis enregistrés ne sont volontairement pas liés a la table patient. Le patient y est identifié grâce à son ZKF qui y est introduit lors de l'enregistrement. donc est-il possible a partir de la de créer une table dent liée à ces 2 tables mais non lié au patient et grâce à laquelle je pourrais créer une liste déroulante reprenant les dents soignées de chaque patient sans pour autant que cette table soit changée lorsque je sélectionne une dent?

 

Link to post
Share on other sites
  • 0

Salut Sadlig,

Il y a 8 heures, Sadlig a dit :

il y a un mois je n’y connaissais rien en base de données

Alors, tu avances bien, bravo.

 

Il y a 8 heures, Sadlig a dit :

Ll'utilisateur doit dire quelle dent il sélectionne par désignation

Il y a 8 heures, Sadlig a dit :

je veux pouvoir les selectionner de cette facon

Ces deux extraits portent sur la même chose, ce que j'ai appelé précédemment "désigner une des dents du patients".

La question est où et quand fait-on cette désignation ? Sur quel modèle est-on et dans quel étape de quel processus…

Link to post
Share on other sites
  • 0

On est sur le Modele Patient à n'importe quel moment pourvu qu'il y ait deja des devis enregistrés. Ce modele sert à inscrire de nouveaux patients et chercher n'importevquel patient par son nom.

Une rubrique RDV sert a inscrire une datée RDV quand c'est nécessaire . Une rubrique dent (liée a la table devis) sert quand elle est rempli à faire apparaitre les boutons de devis pour créer un devis.

Cette rubrique se vide ensuite quand un devis a été enregistré

Je veux pouvoir mettre une rubrique "dent soignée" qui répertorie la ou les dents afférentes aux  devis enregistrés pour pouvoir en designer une quand une date de RDV est inscrite.

Si j'affiche les dents à soigner en appuyant sur le bouton "dent concerné" au moyen d'un script et que je designer ensuite la dent en questionna moyen d'un cercle d'option est ce que ca peut marcher? 

Ces numéro de dent soignées apparaissent aussi sur le devis enregistré qu'on peut appeler et voir, j'ai donc penser les mettre sur la fiche patient au moyen d'une toute petite table externe puisque le but n'est pas d'aller chercher les devis un a un mais de les discriminer au moyen des numéros de dent pour ensuite les regrouper au moyen de la date de RDV identique et les imprimer tous ensemble.....Mais le problème reste toujours la désignation

Link to post
Share on other sites
  • 0

Je pense tenter une autre approche

-trier les patient qui ont la meme date de RDV : on définit une variable à la date qu'on veut qui peut être celle du lendemain de la date actuelle par exemple, puisqu'on veut rechercher les patient du lendemain pour préparer l'impression des devis

-afficher ces patients

-pour chaque patient transferer la date de RDV dans chacun de ses devis enregistrés: ici je me pose la question de la méthode (Définir - remplacer ou importer ? la table des devis enregistrés n'étant pas lié au patient)

-Activer le modele devis enregistré sous forme de liste reprenant le nom du patient, les honoraires, la dent soignée, éventuellement N° et date de devis et date de RDV

-Trier selon la date de RDV

-s'il y a plusieurs devis pour un meme patient, c'est la qu'il faut trouver la méthode pour discriminer selon la dent à soigner

-ensuite créer une boucle qui imprime chaque devis

Link to post
Share on other sites
  • 0

Je finis par ne plus comprendre

Globalement, j'ai le pressentiment qu'il te faut une id_dent_concernee quelque part.    (chez moi, pas de zkp ni zkf, uniquement de id)

Par exemple, si tu es en train de programmer un RDV, tu peux vouloir pointer une dent et la stocker dans la table Seance : seance::id_dent_concernee

--> Là, il s'agit de "désigner une dent à un endroit donné"

--> Exigence pour cela : déterminer où cette rubrique id_dent_concernee doit figurer

(De la même façon, je suppose que dans tes lignes de devis, tu as un id_dent ou un zkf_dent)

Pendant la saisie de cette rubrique, tu peux demander un menu déroulant de toutes les dents "de ce client", ou bien "de tous les devis reliés à cette date", ou bien "de tous les devis en état non effectué", ou encore "toutes les dents jamais répertoriée", etc.

--> Là, il s'agit de "cibler une partie des dents selon certains critères et selon l'endroit où l'on se trouve"

--> Exigence pour cela : déterminer les critères de filtrage, qui nous permettrons de placer la bonne occurrence de table avec le bon lien

Il y a 4 heures, Sadlig a dit :

ensuite créer une boucle qui imprime chaque devis

Là par contre, il s'agit d'imprimer une série de devis. Je ne sais pas si c'est en lien avec le reste.

Link to post
Share on other sites
  • 0

Merci de ton aide, je comprends ce que tu proposes et je vais le noter pour un développement futur, mais la ca devient plus complexe. Mon but est juste est juste d'établir des devis, puis de pouvoir les trier par nom, ca c'est facile,  puis aussi par date sur plusieurs patient sur un jour précis.

La dent et les soins sont pris en compte dans le devis. S'il y a plus d'une dent a soigner pour un patient, il y a un devis par dent. Le ou les devis sont imprimés après la 1ere consultation qui détermine les travaux à entreprendre. La c'est facile aussi, triage sur le nom.

On ne soigne qu'une dent à la fois et en 1 ou 2 seances, donc sur le RDV final on re-imprime le devis + 1 facture qui est identique au devis, avec du baratin légal en moins. Facile de trier par date si tous les patients du jour n'ont qu'un devis.

Le problème est quand il plus d'une dent à soigner sur un patient. Comme je tiens a faire le plus simple possible je cherche une astuce pour discriminer les devis (j'avais commencé à developper une table Dents) mais je me dis qu' en attribuant simplement le 1er N° de devis à la 1ere dent à soigner, ca doit permettre par calcul  lors du triage par date une discrimination sur l'id en prenant la plus faible des 2

Link to post
Share on other sites
  • 0
Il y a 14 heures, Sadlig a dit :

S'il y a plus d'une dent a soigner pour un patient, il y a un devis par dent

Donc, si Monsieur X est venu, ce jour, pour faire soigner 3 dents, j'ai 3 devis déjà créés concernant chacun l'une des 3 dents.

Je suis sur la fiche informatique du client "Monsieur X", dans une table externe, je vois les 3 devis qui lui sont reliés.

Pour chaque devis, je clique sur le bouton "Impression finale" qui va me sortir les 2 documents cités ici :

Il y a 14 heures, Sadlig a dit :

sur le RDV final on re-imprime le devis + 1 facture qui est identique au devis

Au passage, chacun des devis passe en statut «facture imprimée», comme ça on pourra le griser ensuite.

Est-ce que quelque chose coince dans ce procès ?

Link to post
Share on other sites
  • 0

Bonjour Jérémie, non c'est parfait, mais ce que jeux faire et qui peut être fait quand il n'y a qu'un seul dossier par patient c'est de trier les dossiers par date du jour de RDV sans avoir à les consulter précisément, puisqu'on connait les noms des patient du jour: on peut les imprimer d'un clic juste sur un tri par date sans avoir à consulter les dossier....gros gain de temps dans les manipulations au secrétariat.

et c'est la qu'un double triage serait parfait de façon que si un patient a 2 ou 3 dossiers on puisse mettre directement le bon dossier dans la série d'impression sans aller le chercher. Donc je cherche l'astuce pour faire ca sans pour autant compliquer la base de données.

Link to post
Share on other sites
  • 0
il y a 16 minutes, Sadlig a dit :

on connait les noms des patient du jour

Pourquoi la rubrique Date est-elle dans client et non dans dossier ?

Quand je veux «imprimer les «dossiers du jour : je vais dans un modèle basé sur dossier, je cherche dossier::date = Obtenir ( DateActuelle ) et j'imprime

Quand je veux «attribuer une date de RDV pour un client possédant un ou plusieurs devis encore non facturés» : je vais dans la liste des devis, je cherche ceux qui sont non facturés pour ce client là et puis je renseigne leur date

Si le gars a 3 dents à voir et qu'on veut faire les 3 le même jour, on renseigne 3 fois la date ; si on veut vraiment ne pas saisir 3 fois la date, on met en place un petit script, mais l'essentiel est d'avoir la date d'un dossier DANS le dossier

Cela t'aide ?

Link to post
Share on other sites
  • 0

Oui merci ca m'aide dans ma reflexion

Le ou les devis sont imprimés après une premiere consultation pour un bilan, et donné au patient, donc à ce moment la, la date d'impression on s'en fiche, elle n'est pas importante

1 seule dent par patient est soignée le meme jour sur un RDV pris sur Doctolib. Les Rdv sont connus à l'avance et sont donc propres à chaque patient. Je me penche aussi sur le problème d'exporter quelques données Doctolib comme nom, prénom, mail, téléphone et date de RDV pour remplir automatiquement la base de données, mais je verrai cela plus tard, une fois que l'architecture du projet fonctionnera correctement

C'est pour cette raison que le Rdv est sur la fiche patient. Il y a un ou 2 RDV pour soigner une dent et c'est au RDV final qu'on re -imprime le devis et qu'on imprime la facture

Donc tout cela alimente ma réflexion pour essayer de simplifier au maximum les taches de secrétariat car la veille on sait quel patients viennent est ce qu'il y a a imprimer

Link to post
Share on other sites
  • 0

@Jeremie

Voici comment j'ai procédé finalement, vu ton expérience ca ne te sera peut être pas utile mais bon, voila! Merci pour tes réflexions en tout cas!

Une table patient liée à une table devis lié elle même à une table lignes de devis. Cette dernière est alimentée par une table soin liée.

Une table externe - dans un modèle formulaire de devis, enregistre les devis de façon automatique (devis preformaté remplis automatique par la table soin) ou manuelle (on va y piocher ce qu'on veut mettre dans le devi)s. Le N° de dent traitée est lié a la table devis par ligne de devis

On peut annuler ce devis et modifier les lignes a souhait. Quand on est sur du devis, on l'enregistre par importation dans une copie du formulaire de devis lié à une table devis enregistré et lignes de devis enregistrés. Ces 2 table d'enregistrement ne sont pas liées à la table patient.

Sur le modèle patient, pour chaque patient qui remplit les conditions,  j'ai des boutons qui permettent de créer des devis et d'aller voir les devis enregistrés s'ils existent.

Sur la table patient en dessous de chaque patient on peut renseigner une date de RDV. Cette date permet par un tri sur la table patient, d'aller consulter le modèle Devis enregistré des patients en question et d'y importer cette date, puis de consulter le modele Devis enregistré sous forme de liste reprenant juste le non du patient, la dent traité et 2 ou 3 autre renseignements. Le tri restreint l'affichage aux lignes correspondant aux devis des patients correspondant à la date de RDV choisie. Si un patient apparait plusieurs fois avec plusieurs devis, un bouton oui-non, sélectionné par défaut sur une des 2 options, permettra in fine de choisir quels devis imprimer, de façon a pouvoir imprimer d'un coup tous les devis du jour.

Les factures n'étant qu'une copie des devis je vais procéder de la meme façon avec un modèle facture qui sera un recopie arrangée du modèle devis enregistré. Ainsi tout cela reste le plus simple possible.

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...