That's a great idea! Thank you. Joel G Mathew
On Thu, 18 Oct 2018 at 19:57, Matthew Pava <matthew.p...@iss.com> wrote: > > Hi Dr. Joel, > In that case, I would add a function on the customer model that simply > concatenates the customer ID with the clinic ID. I would avoid generating a > whole new table for this. > > def get_card_id(self, clinic): > return f"{self.id}-{clinic.id}" > > > -----Original Message----- > From: django-users@googlegroups.com [mailto:django-users@googlegroups.com] On > Behalf Of Joel Mathew > Sent: Thursday, October 18, 2018 9:19 AM > To: django-users@googlegroups.com > Subject: Re: Creating seperate unique ids within the same table > > Hi Matthew, > Yes, and I am using the id field to query the database for many operations. > But I do not want to share this id to the patient. The reason is that the > data of one clinic is supposed to be seperate from another. If a patient > visits another clinic using the same software, yes, the software should > generate a different id for that clinic. In short, different ids for the same > person in different clinics. Data will not be shared between the clinics. > > And no, they dont get a new card at each visit. Checkid is just used > internally to reference the data between the tables. > > So how can I get a unique id for each customer per clinic? I thought of > getting the last id from the database and then incrementing one, but that > wouldnt work if the last customer was deleted. So I'm thinking a seperate > table to store the last generated hospital id, and use this while creating a > new customer record. And then incrementing the id in the table. Is this the > right approach? Is there a better way? > > To help understand what I mean, just check the GG ID printed on this hospital > card. This id can be memorized by the patient and his records fetched and > checked in. > > https://imgur.com/bU4Bz8W > > Sincerely yours, > > Joel G Mathew > > > On Thu, 18 Oct 2018 at 19:01, Matthew Pava <matthew.p...@iss.com> wrote: > > > > Hi Dr Joel, > > Each patient already has a unique number--the id or pk of the > > model--regardless of what clinic the patient goes to. I even recommend > > maintaining this structure. Any other numbers you add to the ID are just > > noise. Besides, a patient could go to more than one clinic. Would you > > want to add the ID of all the clinics that they are associated with? > > > > If you want to see all the patients at a specific clinic, you could do > > something like this: > > Customer.objects.filter(linkedclinic=[provided_clinic]) > > > > With your new Checkins model, I’m thinking that hospitalid and linkedclinic > > should be a OneToOne relation. You could also combine date and time into > > one field: a DateTimeField. You can always split that apart for your UI. > > And each checkin also has its own ID, so you may want to use that to put on > > the patient's card. Do they get a new card every time they checkin? > > > > > > -----Original Message----- > > From: django-users@googlegroups.com > > [mailto:django-users@googlegroups.com] On Behalf Of Joel Mathew > > Sent: Wednesday, October 17, 2018 10:41 PM > > To: django-users@googlegroups.com > > Subject: Re: Creating seperate unique ids within the same table > > > > Hi Phako, > > Thank you. I'm already following this practise. I have the following > > additional Model: > > > > class Checkins(models.Model): > > checkinno = models.AutoField(primary_key=True, unique=True) > > hospitalid = models.ForeignKey( > > customer, on_delete=models.CASCADE, null=True) > > date = models.DateField(default=timezone.now) > > time = models.CharField(max_length=25) > > consulted = models.IntegerField(default=0) > > closed = models.IntegerField(default=0) > > linkedclinic = models.ForeignKey(Clinic, on_delete=models.CASCADE) > > > > Right now, the program's policy allows any doctor of that clinic to see a > > patient who checked in to that clinic, so doctor is not a ForeignKey for > > this. But later I may need to add this too. > > > > What would you suggest for adding a unique number which gets incremented > > for each new patient registration, and unique to each clinic? > > Sincerely yours, > > > > Dr Joel G Mathew > > > > > > > > On Thu, 18 Oct 2018 at 09:00, Phako Perez <13.phak...@gmail.com> wrote: > > > > > > I suggest to use another table for visit so you can add which doctor, > > > schedule time, and comments or so as a patient may have 1 visit or n... > > > > > > Sent from my iPhone > > > > > > On Oct 17, 2018, at 9:59 PM, Joel Mathew <j...@joel.su> wrote: > > > > > > A hospital id needs to be assigned to a patient and printed on their id > > > card. When they present their card or this number, their records can be > > > retrieved at any time. A checkin id is additionally generated each day > > > based on the date and time. A patient can have only one patient id but > > > many checkin ids. > > > > > > What can be a good approach to solve this? Should I perhaps create > > > another table just to store the last patient id issued to each clinic? > > > > > > > > > > > > > > > On Wed, 17 Oct 2018 at 21:49, Matthew Pava <matthew.p...@iss.com> wrote: > > >> > > >> A number is a number, and we don’t need to attach meaning to it. > > >> > > >> Why do you need to have continuous ids unique to each clinic? As a > > >> developer, I would object to anyone forcing such a requirement. If they > > >> insisted, then I would add a property that is calculated each time based > > >> on the count of patients in the clinic. > > >> > > >> > > >> > > >> From: django-users@googlegroups.com > > >> [mailto:django-users@googlegroups.com] On Behalf Of Joel Mathew > > >> Sent: Wednesday, October 17, 2018 11:01 AM > > >> To: django-users@googlegroups.com > > >> Subject: Creating seperate unique ids within the same table > > >> > > >> > > >> > > >> I have an application which is a clinic management software which allows > > >> login into different clinics, and needs to keep patient records of each > > >> clinic seperately. The patient records are filed in one common model, > > >> with a ForeignKey referring to the clinic to which a patient belongs. > > >> > > >> > > >> > > >> Hitherto I had used the AutoField primary key of the customer model as a > > >> hospital identification number for the patient. This number is unique > > >> and used throughout the application to retrieve querysets related to the > > >> customer. My problem is this. I want each patient to have a unique > > >> automatically incrementing id which can be given to them. Obviously > > >> since all patient records (irrespective of which clinic the patient > > >> belongs to) are stored in one model, the ids are not seperated by > > >> clinic. cstid 1 may be of clinic 1, cstid 5 may again be of clinic 1, > > >> but cstid 6 may be of clinic 2. > > >> > > >> > > >> > > >> I need patients of one clinic to have continuous ids unique to each > > >> clinic. What can I do to achieve this, within my defined models? > > >> > > >> > > >> > > >> class Clinic(models.Model): > > >> > > >> clinicid = models.AutoField(primary_key=True, unique=True) > > >> > > >> name = models.CharField(max_length=60, unique=True) > > >> > > >> label = models.SlugField(max_length=25, unique=True) > > >> > > >> email = models.EmailField(max_length=50, default='') > > >> > > >> mobile = models.CharField(max_length=15, default='') > > >> > > >> alternate = models.CharField(max_length=15, default='', > > >> blank=True) > > >> > > >> about = models.CharField(max_length=250, blank=True) > > >> > > >> state = models.CharField(max_length=25) > > >> > > >> city = models.CharField(max_length=35) > > >> > > >> locality = models.CharField(max_length=35) > > >> > > >> pincode = models.IntegerField(default=0) > > >> > > >> address = models.TextField(max_length=80, default='', > > >> blank=True) > > >> > > >> website = models.URLField(blank=True) > > >> > > >> logo = models.ForeignKey(ProfilePic, blank=True, null=True, > > >> on_delete=models.CASCADE) > > >> > > >> latitude = models.FloatField(blank=True) > > >> > > >> longitude = models.FloatField(blank=True) > > >> > > >> placeurl = models.URLField(blank=True) > > >> > > >> class Meta: > > >> > > >> unique_together = ["name", "mobile", "email"] > > >> > > >> def __str__(self): > > >> > > >> return self.name > > >> > > >> > > >> > > >> class customer(models.Model): > > >> > > >> # Need autoincrement, unique and primary > > >> > > >> cstid = models.AutoField(primary_key=True, unique=True) > > >> > > >> name = models.CharField(max_length=35) > > >> > > >> age=models.IntegerField() > > >> > > >> gender_choices = ( > > >> > > >> ('male', 'Male'), > > >> > > >> ('female', 'Female'), > > >> > > >> ('other', 'Something else'), > > >> > > >> ('decline', 'Decline to answer')) > > >> > > >> gender = models.CharField( > > >> > > >> choices=gender_choices, max_length=10, default='male') > > >> > > >> maritalstatus_choices = ( > > >> > > >> ('unmarried', 'Unmarried'), > > >> > > >> ('married', 'Married')) > > >> > > >> maritalstatus = models.CharField( > > >> > > >> choices=maritalstatus_choices, max_length=10, > > >> default='Unmarried') > > >> > > >> mobile = models.CharField(max_length=15, default='') > > >> > > >> alternate = models.CharField(max_length=15, default='', > > >> blank=True) > > >> > > >> email = models.CharField(max_length=50, default='', > > >> blank=True) > > >> > > >> address = models.CharField(max_length=80, default='', > > >> blank=True) > > >> > > >> city = models.CharField(max_length=25, default='', > > >> blank=True) > > >> > > >> occupation = models.CharField(max_length=25, default='', > > >> blank=True) > > >> > > >> bloodgroup_choices = (('apos', 'A+'), > > >> > > >> ('aneg', 'A-'), > > >> > > >> ('bpos', 'B+'), > > >> > > >> ('bneg', 'B-'), > > >> > > >> ('opos', 'O+'), > > >> > > >> ('oneg', 'O-'), > > >> > > >> ('abpos', 'AB+'), > > >> > > >> ('abneg', 'AB-') > > >> > > >> ) > > >> > > >> bloodgroup = models.CharField(choices=bloodgroup_choices, > > >> max_length=5, default='-', blank=True) > > >> > > >> linkedclinic = models.ForeignKey(Clinic, > > >> on_delete=models.CASCADE) > > >> > > >> class Meta: > > >> > > >> unique_together = ["name", "mobile", "age", > > >> "linkedclinic"] > > >> > > >> def __str__(self): > > >> > > >> return self.name > > >> > > >> > > >> > > >> My thoughts are on counting the number of customer objects with specific > > >> ForeignKey of a clinic, and then updating hospital id field in the same > > >> model. But probably there's a more logical less tedious way of doing > > >> this? Or should I be creating seperate tables for each clinic? > > >> > > >> -- > > >> You received this message because you are subscribed to the Google > > >> Groups "Django users" group. > > >> To unsubscribe from this group and stop receiving emails from it, send > > >> an email to django-users+unsubscr...@googlegroups.com. > > >> To post to this group, send email to django-users@googlegroups.com. > > >> Visit this group at https://groups.google.com/group/django-users. > > >> To view this discussion on the web visit > > >> https://groups.google.com/d/msgid/django-users/CAA%3Diw_98pujPThLkq6FCqGPqJYkE1U4HF1RswQaGTv8QGc7xXw%40mail.gmail.com. > > >> For more options, visit https://groups.google.com/d/optout. > > >> > > >> -- > > >> You received this message because you are subscribed to the Google > > >> Groups "Django users" group. > > >> To unsubscribe from this group and stop receiving emails from it, send > > >> an email to django-users+unsubscr...@googlegroups.com. > > >> To post to this group, send email to django-users@googlegroups.com. > > >> Visit this group at https://groups.google.com/group/django-users. > > >> To view this discussion on the web visit > > >> https://groups.google.com/d/msgid/django-users/02ed2d48826e4249a66072c8f660e77a%40ISS1.ISS.LOCAL. > > >> For more options, visit https://groups.google.com/d/optout. > > > > > > -- > > > You received this message because you are subscribed to the Google Groups > > > "Django users" group. > > > To unsubscribe from this group and stop receiving emails from it, send an > > > email to django-users+unsubscr...@googlegroups.com. > > > To post to this group, send email to django-users@googlegroups.com. > > > Visit this group at https://groups.google.com/group/django-users. > > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/django-users/CAA%3Diw__s-3KSPizNbqNKA1dQ1tc%3DUHuQoWifvae2HTS99DRnxA%40mail.gmail.com. > > > For more options, visit https://groups.google.com/d/optout. > > > > > > -- > > > You received this message because you are subscribed to the Google Groups > > > "Django users" group. > > > To unsubscribe from this group and stop receiving emails from it, send an > > > email to django-users+unsubscr...@googlegroups.com. > > > To post to this group, send email to django-users@googlegroups.com. > > > Visit this group at https://groups.google.com/group/django-users. > > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/django-users/6C618BEA-AFD2-400F-93C0-0DC1A43EBA5E%40gmail.com. > > > For more options, visit https://groups.google.com/d/optout. > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Django users" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to django-users+unsubscr...@googlegroups.com. > > To post to this group, send email to django-users@googlegroups.com. > > Visit this group at https://groups.google.com/group/django-users. > > To view this discussion on the web visit > > https://groups.google.com/d/msgid/django-users/CAA%3Diw_9in_VFvHNsDazu7WLvZP3owr%3D_rO1aSAPrvLoQx-8joQ%40mail.gmail.com. > > For more options, visit https://groups.google.com/d/optout. > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Django users" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to django-users+unsubscr...@googlegroups.com. > > To post to this group, send email to django-users@googlegroups.com. > > Visit this group at https://groups.google.com/group/django-users. > > To view this discussion on the web visit > > https://groups.google.com/d/msgid/django-users/9c5e6dfd72734c2487d1dc63130c0fa9%40ISS1.ISS.LOCAL. > > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to django-users+unsubscr...@googlegroups.com. > To post to this group, send email to django-users@googlegroups.com. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/CAA%3Diw_-E%3DVQ6u7D3TwZ15H7JmZhJ1mFj1Ft9nHp1nSRjBBVOLA%40mail.gmail.com. > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to django-users+unsubscr...@googlegroups.com. > To post to this group, send email to django-users@googlegroups.com. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/18e17766d92041c19a6c4d3b7544fe1a%40ISS1.ISS.LOCAL. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAA%3Diw_9hfKehx5Faevgz1EW%2BJgBK7VRFQuq4taE77pHwKKkSGw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.