← Back to team overview

dhis2-devs team mailing list archive

Re: Greetings + new DHIS patient module

 

Hi bob,
the system generated ID is to one way to identify the case or person. using
orgunit you mean the code for that organization unit. In india they have
generated a 16 digit ID based on Country, Province,District,Sub-district and
facility. but the problem with this is what happen if new district
or province is created. In norway the personal id number is
ddmmyy+sex+random number. I thougth we cloud use the same but increasing the
random number to avoid the duplicate. And its also useful that the person
dont have to remember all the 16 or 14 digit number. for the sake of
simplicity we used this method.
John

On Wed, Mar 3, 2010 at 1:35 PM, Bob Jolliffe <bobjolliffe@xxxxxxxxx> wrote:

> Hi
>
> On 3 March 2010 12:20, Viet Nguyen <phamquocviet@xxxxxxxxx> wrote:
> >
> > Hi,
> >
> > Just a quick update about Patient registration form functionality :
> >
> > * Check duplicate :
> >
> > This function allow user to check for existing patient base on : name ,
> > birthdate, age, gender
> >
> > If there is duplicate patient, a pop up will be showed, with the list of
> all
> > the duplicated patients.
> >
> > From this pop up, user can have two options :
> >
> > Continue create the current patient. So there will be two patients with
> the
> > same information like above. But their  identifiers must be different
> which
> > will be checked later.
> > User can choose a patient from the list duplicated patient to update
> > information for him, by click on the button "Update this patient" that
> > follow by each patient in the list. User will then be redirected to the
> > Update Patient page.
> >
> > * Under age patient :
> >
> > Under age patient can be understand as a child. The purpose of this field
> is
> > not to hard code the age to define a child, like  age < 5  or age < 15.
> >
> > In the registration form, there is a check box named " Is Underage" .
> User
> > check on this check box to identify the patient is a child.  A pop up
> will
> > be showed after clicking.
> >
> > The purpose of this pop up is :  user must choose a representative for
> this
> > child.  Because , some  identifiers that are mandatory ( can be defined
> in
> > Patient Identifier Type management page ) . But a child can not have
> those
> > identifier, so we have to inherit those identifier from the child's
> > representative.
> >
> > Not all identifier can be inherited, you can defined a
> PatientIdentiferType
> > is able to inherit or not when creating it.  The field name is  "Related"
> > ... ( God ...why didn't I use" Inheritable" .... ) .
> >
> > If a PatientIdentifierType with "related" = FALSE and "mandatory" = TRUE
> > then user must enter value for it.
> >
> > Ok, back to the popup, there are two tabs :
> >
> > Search existing person : user can search for an existing patient in
> system
> > to be the representative of the child.
> > Add new person : said this is person, because this is not really a
> patient,
> > this person is just giving identifier...not enrolling to any program, at
> > least at this step. Of course the record is also saved to the patient
> table.
> > The form just only include basic information ( name , birthdate, gender..
> )
> > and Identifiers.  No attributes is needed. Of course  user can update
> > attributes for this person later by the Update Patient page.
> >
> > One problem in this function that I can not have enough time to do :
> >
> > In the combo box Relationship Type, there should be Parent and Guardian,
> I
> > hard coded this. You should create two relationship type  with this
> > information before testing this function :
> >
> >    A is to B : Guardian, B is to A : Child
> >    A is to B : Parent , B is to A : Child.
> >
> > The list of relationship type should be get from the Relationship type
> > table. But if we put everything to the combo box, then user may choose
> > Husband, Wife, or even child...which is so wrong.
> >
> > My plan is creating an object RelationshipGroup, which should be based on
> > the age...
> >
> > Anyway, because we are late for releasing this version in India. so hard
> > code for now is the only solution. I will continue working on this, so
> > ...please don't worry...
> >
> > * System generated identifier :
> >
> > I looked at the id_gen module from OpenMRS. Well , they have a whole
> module
> > for this which has many functionality for manage system auto generated
> > identifier.
> >
> > I can not have enough time for getting all of that. So what I did is just
> > get a piece of code that is used for generate a check digit for the ID.
> >
> > The format that Indian team chose is :
> > [BirthDate][Gender][XXXXXX][checkdigit]
>
> Encoding the birthdate and gender into a patient identifier is
> considered bad practice.  Using the orgunit+random digits would be
> much better.  It shouldn't matter if the patient "migrates".  The
> number was simply issued by a particular facility.
>
> Regards
> Bob
>
> >
> > BirthDate : yyyyMMdd
> > Gender : Male  = 1 ; Female = 0
> > XXXXXX : a random number  with length = 6   ( 0 - 999999 )
> > checkdigit :  generated using Luhn Algorithm ( thanks to OpenMRS guys )
> >
> > I also changed the way that Abyot generate the birthdate from age ( when
> > user only enter age ) .
> > It is :    todayCalendar.add( Calendar.YEAR, -1 * age );
> > What Abyot did is
> >           todayCalendar.set( Calendar.DATE, 1 );
> >           todayCalendar.set( Calendar.MONTH, Calendar.JANUARY );
> >           todayCalendar.add( Calendar.YEAR, -1 * age );
> > Because we generate the id base on birthdate , get current date should be
> > better.
> > Hope this is ok for Abyot....
> >
> > Each country will have different formats...so I think for current we just
> > can change code when implementing in the country. Building a module for
> this
> > would take time....
> >
> > Finally,  but almost those things only follow India 's requirements.
> > Please give comment then we can try to make it more generic...
> >
> > Regards,
> >
> > Viet Nguyen
> >
> >
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>

Follow ups

References