Mike,

I'm just concerned about our de-duplication efforts.  If we make all
demographics optional, then we may go take de-duplication from a difficult
task to an impossible one.  That said, if the de-duplication effort can
take linked objects into consideration – i.e., know that a person is linked
to a provider – then perhaps an anonymous person record isn't so terrible…
as long as it's linked.  In other words, perhaps the compromise here is the
best solution: only un-linked person records require basic demographics.
 In other words, you cannot create a nameless, genderless, ageless person
record that stands on its own; rather, it would have to be linked to a
patient, user, and/or provider.  Likewise, you could not unlink an person
record lacking name+gender+age from all patient/user/provider objects
without also voiding it.  Of course, the API would need to enforce this.

Maybe we can discuss with Shaun regarding side-effects on de-duplication
efforts.

BTW… I know I have a reputation as a complicator (that's why Win avoids
me).  I'm not thrilled about it & I'd much rather be seen as a simplifier,
but I don't believe it's always "simpler" when an easy solution now just
ends up deferring the difficulty or shifting it to somebody else.  Usually,
un-debated solution (even my own) are weaker than those that have been
beaten around a few heads.  In fact, the best solutions I've seen are
compromises.  If I'm making things complicated without good reason, please
continue to call me on it.

-Burke

On Thu, Apr 19, 2012 at 3:53 PM, Michael Seaton <[email protected]> wrote:

> **
> Hi Burke,
>
> I understand your point.  But is it all or nothing with regards to
> constraints?  If we remove the data model constraints on Person here, it
> gives us the flexibility to address each use case as we see fit:
>
> * We allow Providers to be simply links to mostly-empty person records,
> with a single Person name that contains a title and a surname.
> * We allow Users to also be genderless and ageless (why should we care
> about this here either)?
> * We force Patients to have age and gender specified if entered via
> certain service methods
> * We leave the door open for Patients without gender or birthdate if
> needed (eg. if I want to import from EPI Info, and some patients are
> missing these fields)
>
> As it is now we will have a provider management module that will manage
> _some_ providers, but not all.  This isn't a deal-breaker, but it would be
> better if it weren't so.
>
> We also have API methods that we have to deal with (and haven't done so
> well as of yet) - for example, in trunk currently we have
> Provider.getName() return simply the name property of the object.  It does
> not take the underlying Person into consideration at all.  Yes, this could
> (and should) be fixed, but it's just added complexity to now have 2 places
> where names may be stored for a Provider.
>
> It just seems to me that we are over-complicating things unnecessarily,
> and I want to put out this alternative design out for consideration...
>
> Mike
>
>
>
> On 04/19/2012 03:23 PM, Burke Mamlin wrote:
>
> Mark,
>
>  If we have (very useful) information about all providers in the district
> and they contain title & identifiers like "Dr. Ochieng (1234-5)", are you
> saying that we should not require gender, at least estimated birthdate, and
> at least two names on Person to allow this?
>
>  The key difference between a provider and a user is that a provider does
> not have to *have* anything whatsoever to do with the EMR beyond being
> references (e.g., capturing a referring provider from an external facility).
>
>  Defining a person without knowing their name, whether they're male vs.
> female, or whether they're two years old vs. 50 years old would make Person
> solely a linking tool – i.e., akin to auto-generating 100,000 nameless,
> genderless, ageless records in the person table and picking the next one
> when you want to link a patient to user, provider to user, etc.  This is
> directly counter to our effort to leverage Person as the one location
> within which we focus our efforts to *avoid and address* duplication
> errors.
>
>  We could require that all providers are persons, but I don't believe we
> should make all hopes at identification for person optional to do it;
> rather, we'd need to come up with a solution for those folks who get the
> list of providers like "Dr. Ochieng (1234-5)" and are missing the
> demographics to generate a person.
>
>  What's driving you to this conclusion?  Is there some reason that you
> can't limit yourself to providers linked to person records?  Where is the
> assumption that provider must be a person being made?
>
>  -Burke
>
> On Thu, Apr 19, 2012 at 2:46 PM, Michael Seaton <[email protected]> wrote:
>
>> Hi all,
>>
>> I brought up an idea buried in an email during the Provider Attribute
>> thread a few weeks ago, but it was lost a bit in all of the many other
>> points being made, so I wanted to raise it here again explicitly.
>>
>> I think making the link between Provider and Person optional is a
>> mistake.  Here is my reasoning:
>>
>> * A Provider in OpenMRS is not meant to be a subclass.  It is meant to be
>> a particular role in the health care system that a Person can have.  And a
>> person may have many of these.
>>
>> * The most similar thing we have in OpenMRS to this is User.  No users
>> are allowed in OpenMRS without being associated with a Person.  User is
>> probably more accurately thought of as a User Account.  Clearly a single
>> Person can hold multiple User Accounts.
>>
>> * The only real reason I can see for making Person optional is so that we
>> can avoid having to require things like "gender", "birthdate", etc. on
>> Provider that have traditionally been required of Person at the database
>> and API levels.  For example, if we are uploading a list of 10,000
>> providers from a national registry, and all we have is a String name, and
>> no gender or birthdate data.  However, I think a more valid solution to
>> this problem is just to remove those data model and API restrictions, and
>> to make Person not require this data.  Then, we just move those validation
>> constraints onto the Patient object if we desire (though to be honest we
>> don't always have this information here either, particularly if we are
>> importing data from a legacy system).
>>
>> So, I realize we are at RC3 for 1.9 and all, but my proposal would be to:
>>
>> * Make Person not null on Provider
>> * Make gender and birthdate nullable on Person
>>
>> This is particularly relevant to our team at PIH as we are currently
>> building a Provider Management module on top of 1.9.  Mark has had to bake
>> in the assumption that all Providers have Person records (at least those
>> that can be managed with this module), because this is required for many of
>> our use cases - in particular the notion that Providers are linked to their
>> Patients and to other Providers via Relationships.
>>
>> I would be interested to hear others thoughts on this or if any of my
>> assertions / assumptions are just wrong.
>>
>> Thanks,
>> Mike
>>
>> _________________________________________
>>
>> To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to
>> [email protected] with "SIGNOFF openmrs-devel-l" in the  body
>> (not the subject) of your e-mail.
>>
>> [mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l]
>>
>>

_________________________________________

To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to 
[email protected] with "SIGNOFF openmrs-devel-l" in the  body (not 
the subject) of your e-mail.

[mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l]

Reply via email to