Hi,
I did not split the interface SmartDataHandler into two as said in code
review.Because i thought the current SmartDataService does not allow to
select particular SmartObject based on the some id[0].My idea is to
implement services  for each Smart data and expose it as separate services
through Context.getService(class).So the SmartDataHandler interface should
have two methods,

One for mapping a SmartData
 SmartData getSingle(BaseOpenmrsData single);
One for mapping list of Smartdata
List<SmartData> getAll(List<BaseOpenmrsData> list)

Each services can use above two methods to get single data or multiple data
based on the supplied arguments.
Thank you.
[0]
http://wiki.chip.org/smart-project/index.php/Developers_Documentation:_REST_API

On Fri, Aug 19, 2011 at 2:42 AM, Ben Wolfe <[email protected]> wrote:

> The only class that uses "getForPatient" is the SmartDemographicsHandler.
> No id is needed because the data is actually off of the patient object.
>
> The only other way this could work is if the getForPatient returns the most
> recent data.  Eg. the most recent medications or the most recent allergies.
> However I see that actually as being a very small use-case.
>
> The better solution is to do the separation that Darius suggested so that
> patient-centric SMART objects could implement that just return their one
> piece of data.
>
> Ben
>
>
> On Thu, Aug 18, 2011 at 11:00 PM, Darius Jazayeri <[email protected]
> > wrote:
>
>> The point is that SmartProblemHandler should not implement getForPatient,
>> because that method is only meaningful for single-item-per-patient data
>> items.
>>
>> So, I think the right solution is to split into two interfaces (they can
>> have a common parent interface), e.g.:
>> interface SmartHandler {
>>     // empty
>> }
>>
>> interface OnePerPatientSmartHandler<T> extends SmartHandler {
>>     T getForPatient(patient/patientId)
>> }
>>
>> interface MultiplePerPatientSmartHandler<T> extends SmartHandler {
>>     List<T> getAllForPatient(patient/patientId)
>> }
>>
>> -Darius
>>
>>
>> On Thu, Aug 18, 2011 at 12:35 PM, Wyclif Luyima <[email protected]>wrote:
>>
>>> Currently implementations of this method return null, and i guess the
>>> reason is because there is no way to uniquely look up a  smart object being
>>> requested for and this is why i suggested adding an id argument, so
>>> that SmartDataService.getForPatient(Patient, Integer id) would return the
>>> object of the actual type defined by the implementing class that matches the
>>> specified id. e.g SmartProblemHandler.getForPatient(Patient, Integer id)
>>> would return a patient problem matching the passed in Id.
>>>
>>> Wyclif
>>>
>>>
>>> On Thu, Aug 18, 2011 at 3:10 PM, Darius Jazayeri <
>>> [email protected]> wrote:
>>>
>>>> Hi Wyclif,
>>>>
>>>> I'm not sure what that code looks like now, but IIRC the point is that
>>>> the getForPatient method gets an object that's unique (possibly aggregated)
>>>> for the patient. So the idea is that you'd say
>>>> DemographicService.getForPatient(patient) and it gives you back a single
>>>> SmartDemographics.
>>>>
>>>> (In the code review I proposed breaking up SmartDataService into two
>>>> different interfaces, one for the one-per-patient, and one for the
>>>> multipl-per-patient.)
>>>>
>>>> -Darius
>>>>
>>>>  On Thu, Aug 18, 2011 at 11:20 AM, Wyclif Luyima <[email protected]>wrote:
>>>>
>>>>>  Hi,
>>>>>
>>>>> I think we need to add an extra  argument
>>>>> to SmartDataService.getForPatient which will be the unique database id for
>>>>> the Smart object to fetch otherwise it seems useless for now.
>>>>>
>>>>> Wyclif
>>>>>
>>>>> ------------------------------
>>>>> Click here to 
>>>>> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from
>>>>>  OpenMRS Developers' mailing list
>>>>
>>>>
>>>> ------------------------------
>>>> Click here to 
>>>> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from
>>>>  OpenMRS Developers' mailing list
>>>
>>>
>>> ------------------------------
>>> Click here to 
>>> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from 
>>> OpenMRS Developers' mailing list
>>>
>>
>> ------------------------------
>> Click here to 
>> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from 
>> OpenMRS Developers' mailing list
>>
>
> ------------------------------
> Click here to 
> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from 
> OpenMRS Developers' mailing list
>



-- 
Balachandiran Ajanthan
Phone:+94775581497
Blog   : http://ajanthan87.blogspot.com
Twitter: ajanthan87
skype  :bala.ajanthan
gtalk   :balaajanthan

_________________________________________

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