Going SMART Vs OpenMRS might turn out not to be a trivial decision, why? A SMART app is a separate web app that could have been written in a separate programming language or even just a web page with javascript logic that is capable of processing data received from a SMART rest API via SMART connect API and produce meaningful output, the key thing is that the SMART app can be run inside another application which is a SMART container, typically this would be inside an iframe embedded in web page of another web app, as you have seen how the demos apps i added are executed.in OpenMRS.
Personally i would only go for a SMART app if i already had an existing web application that i would want to be run inside OpenMRS as a SMART app without having to write an OpenMRS module so as to add the features i wish to. If you want to write a SMART app, you need a host for your application, you need to check the SMART datatype model for the datatypes that would best suit your needs, standard SMART datatypes are defined here<http://wiki.chip.org/smart-project/index.php/Developers_Documentation:_SMART_Data_Model> , if there is already a handler for it in the SMART container module, then you are set to write your SMART app, if not, we can always add the handler for it in the next release for the module. Currently the registered handlers in the module are for : Demographics, Medications(Regimens), LabResults, Vital Signs, Problems, Allergies and AllergyExceptions. This list is expected to grow in the next release to include datatypes like Alerts(Notes), Encounters, Fulfillments and EncounterTypes. Wyclif On Tue, Feb 14, 2012 at 9:51 AM, Darius Jazayeri <[email protected]>wrote: > I've never written a SMART app, so I don't know. It's probably easier for > some things, and harder for others. (I know, that's not really helpful. :-) > > SMART definitely makes it easier to fetch high-level clinical patient data > (e.g. Problem List, Allergies, Prescriptions) in javascript. IIRC it > doesn't allow any access to *general* observations at all. > > -Darius > > > On Tue, Feb 14, 2012 at 6:16 AM, Joaquín Blaya < > [email protected]> wrote: > >> Thanks Darius. >> >> One question that I still had, is it easier to write a SMART app or an >> OpenMRS module? >> >> >> Joaquín >> ___________________________________________________________________ >> Gerente de Desarrollo, eHealth Systems <http://www.ehs.cl/> >> Research Fellow, Escuela de Medicina de Harvard <http://hms.harvard.edu/> >> Moderador, GHDOnline.org <http://www.ghdonline.org/> >> >> >> On Sat, Feb 11, 2012 at 2:01 AM, Darius Jazayeri <[email protected] >> > wrote: >> >>> A bit of relevant background: >>> >>> SMART is a project out of CHIP in Boston. The idea is that they've >>> defined a common-denominator virtual EMR, so that you can write a SMART app >>> once, and that app will work against many different EMR systems as long as >>> they're a "SMART Container", which OpenMRS now is. >>> >>> So, if you just want to build an OpenMRS module, SMART isn't really >>> relevant. If you want to write functionality that works in more than just >>> OpenMRS, then it may be the way to go. >>> >>> -Darius >>> >>> >>> On Fri, Feb 10, 2012 at 8:29 PM, Joaquín Blaya < >>> [email protected]> wrote: >>> >>>> Thanks Wyclif, you did answer my questions, but i'm guessing I'll need >>>> to read up more on SMART to be able to understand your response completely. >>>> >>>> Another question or questions came up. >>>> 1. How is this better than just writing an OpenMRS module that has the >>>> functionality of a SMART app? Is it because we can now use SMART apps as >>>> well as OpenMRS modules, are SMART apps easier to write, or something else? >>>> >>>> 2. If thinking about the case of an EMR RIS/PACS connection, what would >>>> be the difference between say having OpenMRS call the RIS/PACS versus >>>> having the RIS/PACS be a SMART app within OpenMRS? >>>> >>>> >>>> Joaquín >>>> ___________________________________________________________________ >>>> Gerente de Desarrollo, eHealth Systems <http://www.ehs.cl/> >>>> Research Fellow, Escuela de Medicina de Harvard<http://hms.harvard.edu/> >>>> Moderador, GHDOnline.org <http://www.ghdonline.org/> >>>> >>>> >>>> On Fri, Feb 10, 2012 at 8:13 PM, Wyclif Luyima <[email protected]>wrote: >>>> >>>>> @Dave, to answer the question without going into much details i would >>>>> say, the smart team defines >>>>> here<http://wiki.chip.org/smart-project/index.php/Developers_Documentation:_REST_API>a >>>>> standard end pattern(excluding the domain name and the web app's root >>>>> context) which the urls for the different data types should end with and a >>>>> smart rest API should serve them. You notice these don't conform to our >>>>> rest ws url pattern. So in the module we just append these to >>>>> 'contextPath/module/smartcontainer/rest/api which are served by the small >>>>> non-public rest api that the module provides. >>>>> >>>>> Wyclif >>>>> >>>>> On Fri, Feb 10, 2012 at 3:56 PM, Dave Thomas <[email protected]>wrote: >>>>> >>>>>> This is really cool. Just to satisfy curiosity, how does the SMART >>>>>> rest API know the specifics of the openmrs api, if this module isn't >>>>>> using >>>>>> the OpenMRS webservices module? >>>>>> >>>>>> d >>>>>> >>>>>> >>>>>> On Fri, Feb 10, 2012 at 12:17 PM, Wyclif Luyima >>>>>> <[email protected]>wrote: >>>>>> >>>>>>> Hi Joaquin, >>>>>>> >>>>>>> The thing worth mentioning that i didn't in release email is that >>>>>>> actually this is not fully fledged 'SMART container' because the >>>>>>> installed >>>>>>> apps can only fetch data from the same OpenMRS instance, so it is the >>>>>>> container and back end EMR at the same time and this is what we decided >>>>>>> on >>>>>>> for the first release, probably a feature we can add in later versions >>>>>>> is >>>>>>> to let them communicate to external EMRs. Currently the only apps that >>>>>>> can >>>>>>> be hosted are those that conform and were written according to this >>>>>>> specs >>>>>>> at SMART project and those are javascript based apps. >>>>>>> >>>>>>> With the above in mind, see the inline responses i have added below: >>>>>>> >>>>>>> 1. Would this allow all of the permissions for all of the SMART apps >>>>>>> to be handled through OpenMRS? i.e. if I insert a RIS/PACS >>>>>>> viewer as a SMART app, would OpenMRS be the one that has the user's >>>>>>> permissions as to what they can and can not see inside the RIS/PACS? >>>>>>> User permissions are still handled by core when the apps attempt to >>>>>>> access date through the private SMART rest API, i.e if a user had no >>>>>>> privileges to the domain objects that a SMART app's data handler uses, >>>>>>> then >>>>>>> you won't view contents from that app, probably you will see an error >>>>>>> message above the iframe in which the SMART app contents are displayed. >>>>>>> >>>>>>> 2. Does this use the OpenMRS REST API or the SMART one? >>>>>>> The SMART rest API is its own and private, this because these apps >>>>>>> run inside the same OpenMRS instance as the data they are accessing is >>>>>>> stored, so it didn't make sense to make it public. >>>>>>> 3. Can as described above, a RIS/PACS system (or a lab system or >>>>>>> others) be connected via a SMART app to OpenMRS for the users to view >>>>>>> those >>>>>>> systems seamlessly i.e. if in OpenMRS, view images from the RIS/PACS, >>>>>>> pages >>>>>>> from the LIS, or other subsystems? >>>>>>> This should be possible, if you tried out the sample apps i attached >>>>>>> to a follow up email i sent, the medication app is capable of fetching >>>>>>> videos and PDF which it displays seamlessy inside OpenMRS, you might >>>>>>> want >>>>>>> to visit how to create a smart >>>>>>> app<http://wiki.chip.org/smart-project/index.php/HOWTO_Build_a_SMART_App> >>>>>>> >>>>>>> Hope i've addressed your questions >>>>>>> >>>>>>> Wyclif >>>>>>> >>>>>>> On Fri, Feb 10, 2012 at 2:08 PM, Joaquín Blaya < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Wyclif, >>>>>>>> This is great, because just 2 days ago we were talking down here >>>>>>>> that we needed to see how to imbed other programs within OpenMRS. >>>>>>>> >>>>>>>> A couple of questions. >>>>>>>> 1. Would this allow all of the permissions for all of the SMART >>>>>>>> apps to be handled through OpenMRS? i.e. if I insert a RIS/PACS >>>>>>>> viewer as >>>>>>>> a SMART app, would OpenMRS be the one that has the user's permissions >>>>>>>> as to >>>>>>>> what they can and can not see inside the RIS/PACS? >>>>>>>> 2. Does this use the OpenMRS REST API or the SMART one? >>>>>>>> 3. Can as described above, a RIS/PACS system (or a lab system or >>>>>>>> others) be connected via a SMART app to OpenMRS for the users to view >>>>>>>> those >>>>>>>> systems seamlessly i.e. if in OpenMRS, view images from the RIS/PACS, >>>>>>>> pages >>>>>>>> from the LIS, or other subsystems? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> Joaquín >>>>>>>> ___________________________________________________________________ >>>>>>>> Gerente de Desarrollo, eHealth Systems <http://www.ehs.cl/> >>>>>>>> Research Fellow, Escuela de Medicina de >>>>>>>> Harvard<http://hms.harvard.edu/> >>>>>>>> Moderador, GHDOnline.org <http://www.ghdonline.org/> >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Feb 9, 2012 at 4:12 AM, Wyclif Luyima >>>>>>>> <[email protected]>wrote: >>>>>>>> >>>>>>>>> Apparently i forgot to attach the sample apps zip file, pleased >>>>>>>>> find the attachment to this email. >>>>>>>>> >>>>>>>>> Sorry about that. >>>>>>>>> >>>>>>>>> Wyclif >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Feb 9, 2012 at 2:06 AM, Wyclif Luyima >>>>>>>>> <[email protected]>wrote: >>>>>>>>> >>>>>>>>>> Hello everyone, >>>>>>>>>> >>>>>>>>>> We are proud to announce that SMART container 1.0.0 is available, >>>>>>>>>> this is the first major release of the module. It can be downloaded >>>>>>>>>> from >>>>>>>>>> the modules download <https://modules.openmrs.org> page and its >>>>>>>>>> documentation is located at >>>>>>>>>> documentation<https://wiki.openmrs.org/display/docs/Smart+Container+Module>. >>>>>>>>>> In >>>>>>>>>> summary, it adds the necessary features required to transform an >>>>>>>>>> OpenMRS >>>>>>>>>> instance into a SMART app container, meaning that you can download a >>>>>>>>>> SMART >>>>>>>>>> app manifest file, install it in OpenMRS and start using it right >>>>>>>>>> away, see >>>>>>>>>> SMART<http://wiki.chip.org/smart-project/index.php/Main_Page#What_is_SMART.3F> >>>>>>>>>> for >>>>>>>>>> more details about SMART. >>>>>>>>>> >>>>>>>>>> Attached to the email is a zip file with some sample apps you can >>>>>>>>>> try out, other sample apps can be downloaded from the SMART website >>>>>>>>>> at >>>>>>>>>> http://sample-apps.smartplatforms.org/framework/ >>>>>>>>>> >>>>>>>>>> A big thanks to Balachandiran Ajanthan who spent last summer >>>>>>>>>> working on most aspects of the module under the GSoC programme, Josh >>>>>>>>>> Mandel >>>>>>>>>> and the SMART team for all their input. Thanks also to the >>>>>>>>>> developers and >>>>>>>>>> everyone else in the community that has contributed in various ways. >>>>>>>>>> >>>>>>>>>> We are looking forward to any form of feedback from you about the >>>>>>>>>> module, in case you happen to discover any obscure bugs, please you >>>>>>>>>> can >>>>>>>>>> create tickets through our issue tracking system jira at project >>>>>>>>>> page <https://tickets.openmrs.org/browse/SMART> >>>>>>>>>> >>>>>>>>>> Kind regards, >>>>>>>>>> >>>>>>>>>> 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 >>>>> >>>> >>>> ------------------------------ >>>> 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 > _________________________________________ 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]

