dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #04622
Re: Greetings + new DHIS patient module
Hi Thanh
On 3 March 2010 19:59, Ngoc Thanh Nguyen <thanh.hispvietnam@xxxxxxxxx> wrote:
>
>
> On Thu, Mar 4, 2010 at 12:11 AM, Bob Jolliffe <bobjolliffe@xxxxxxxxx> wrote:
>>
>> Hi John
>>
>> On 3 March 2010 15:20, John lewis <johnlewis.hisp@xxxxxxxxx> wrote:
>> > 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.
>>
>> I think this is a national id number. In Norway they do indeed use
>> the national ID number as a patient ID. And, believe it or not,
>> Norway does not follow best practice in this area. They do it
>> probably because it was convenient and they started doing it at a time
>> before anyone really took much time to think about it. The hazard of
>> early adoption in the information age. They are not the only country
>> which now finds itself in this position.
>>
>> I've mentioned a few times on this list that national identifiers are
>> not always suitable for use as patient identifiers. That they are
>> frequently coerced for this use is now broadly understood to be a
>> common but bad practice, largely because the requirements of national
>> ids are not generally the same as requirements for patient ids. There
>> are a lot of references out there on what these requirements are - I
>> think myself and Saptarshi have provided some links to literature on
>> the subject. Just googled this one fresh for example
>>
>> (http://books.google.com/books?id=X0JeKx8-J0cC&pg=PA59&lpg=PA59&dq=norway+patient+identifier&source=bl&ots=6C8eZlwxLb&sig=zTY4mpmxpNtvGGz-hssv3KVEQh8&hl=en&ei=F46OS7KHEJO7jAfZocDpAw&sa=X&oi=book_result&ct=result&resnum=5&ved=0CB8Q6AEwBA)
>> coz it mentions Norway - what a horrible url - and not a great
>> article. You can I'm sure access better quality stuff through the
>> university.
>>
>> In the case of India, where they are now designing a national ID from
>> scratch, they might have taken this issue into account - ie they have
>> the benefit of hindsight that the identifier might (read it always
>> happens!) be used for many purposes beyond what may have been its
>> original intent. So the ID could be useful if encoded on a card or
>> something, but the downside being that very few people are going to
>> memorize it if it has many random digits. Alphanumerics can help keep
>> it shorter.
>>
>> I'm not sure if I get your concern about provinces and districts
>> changing etc. Using a similar scheme but based on facility+unique
>> string a patient would only really need to commit to memory the unique
>> string part in 95% of cases. She would only need the full number with
>> prefix part when visiting a different facility at which point it would
>> be useful to have the full number on a card, file or what have you.
>> But even then, if she remembered the facility that she got it from, it
>> could be reasonably reconstructed.
>>
>> I can sympathize with the desire for simplicity and I think we should
>> strive for a simple solution. But given that is widely accepted that
>> encoding the birthdate and gender in a patient id is a bad practice I
>> don't think it is wise to roll-out a new personal identification
>> system like this. To me it might indicate a certain amateurism and
>> lack of familiarity with the literature which could reflect badly on
>> the project. Particularly as you are undergoing your security review.
>> I also do know that the openmrs guys have really put a lot of thought
>> into this.
>>
>> So my warning would be if you go ahead with birthdates and gender you
>> should be prepared to be hammered from all sides.
>>
>> Cheers
>> Bob
>>
>
> I think we can take a look at here
> http://en.wikipedia.org/wiki/National_identification_number to see how
> countries in the world dealing with this problem. While putting birthdate in
> the ID is considered as a violence of privacy, most of countries use it in
> their national ID systems. They might do thing wrong? ID system, as I
> perceive, is very similar to a infrastructure with its installed based.
> Addressing it is not the problem of good or bad but what the current
> situation is and how to build upon that, I think.
The wikipedia article you refer to deals with national ids. From the
same source re patient identifiers:
http://en.wikipedia.org/wiki/ASTM_E_1714#Patient_confidentiality_and_access_security
Not that I'm in favour of the 28 digit sample. That seems not to be
appropriate where manual systems are the norm. But the desirable
characteristics of a patient identifier are worthwhile being aware of.
Its ok of course to deviate from them with good reason, but lets
start from what is generally considered good practice and work from
there.
Bob
> Thanh
>
>
>
>>
>> >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
>> >
>> >
>>
>> _______________________________________________
>> 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
>
>
>
> --
> Best regards,
> Thanh
>
> -------------------
> Center for HIS development
> 957, 3/2 st., Dist 11, Hochiminh city
> Tel: 08-956 0150
> Cell: 098 221 8623
> --------------------
>
> _______________________________________________
> 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