Bosphorus web services beta announcement

2011-11-16 Thread Thomas Beale
On 15/11/2011 22:19, Erik Sundvall wrote:
 Hi!

 On Tue, Nov 15, 2011 at 10:45, Seref Arikan
 serefarikan at kurumsalteknoloji.com  wrote:
 The web service exposes the archetype parser functionality of Thomas Beale's
 Eiffel code base with XML and JSON output.
 Very nice work! Does this mean that it will be easy to keep it up to
 date with the functionality of  ADL 1.5 workbench?

well, the workbench proper is the local GUI, so probably you mean the 
compiler, RM component, and so on, which will all be progressively 
exposed via Bosphorous...

 A web service taking a Template file (and archetypes either from
 repository or uploads) as input and generating an Operational Template
 (OPT) as output in JSON or XML would be very nice contribution.

Erik, if you can put that on the tracker at 
http://www.openehr.org/issues/browse/AWBPR it would help. I add 
functionality based on what is in this tracker, and between the ADL 1.5 
compiler and Bosphorous we will add this kind of functionality...


 There are a lot of magic output formats outlined in e.g. figure 3 of
 http://www.openehr.org/svn/specification/TRUNK/publishing/architecture/am/aom1.5.pdf
 that would be nice to be able produce online via http.

slowly getting there ;-)

- thomas




Bosphorus web services beta announcement

2011-11-15 Thread Rong Chen
Hi Seref,

Thanks for the hard work to make this happen! I will definitely try it out.

Regarding the XML output, I think we need to find away of mapping the
content to the AOM implementation in java so we can utilize the
existing functionality in the java library.

Cheers,
Rong

On 15 November 2011 10:45, Seref Arikan
serefarikan at kurumsalteknoloji.com wrote:
 Dear members of the openEHR community,

 Having reached a point where project Bosphorus has reached a functional
 state, we have deployed and experimental web service under Opereffa's
 current server.

 The web service exposes the archetype parser functionality of Thomas Beale's
 Eiffel code base with XML and JSON output. There is a simple web application
 at http://opereffa.chime.ucl.ac.uk/bosphorus/ which uses this web service to
 display XML and JSON output.

 The web service is as simple as possible to use: calling
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslist
 returns an XML list of the archetypes in repository, and calling
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetype with
 the archetype name as the parameter such as:
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetype?archetypeName=openEHR-EHR-CLUSTER.case_identification.v1
 returns the XML output. Simply changing the URLS to
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslistjson
 and
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypejson
 allows access to JSON output.

 There are known issues in the XML output, which we are fixing at the moment,
 but we felt that the current state of the code is capable enough to share
 with the community, to demonstrate the idea of turning key openEHR
 infrastructure functionality into web services. Thanks to functionality of
 the Eiffel reference implementation, this web service handles the processing
 of ADL 1.5 specific features and its XML output is valid according to
 published XML schemas (version 1.0.1). Please note that the XML or JSON
 output is only data, therefore its content must be placed into an AOM
 implementation to become a complete parser output, and we look forward to
 hearing from implementers, especially in the Java space to collaborate on
 this.

 In the near future, we are going to be extending the set of services, and we
 would be glad to hear about your ideas for new web services in the tooling
 space.

 The packaging and release of code will follow soon, but it will take time
 since Bosphorus has a fairly complicated development setup, requiring Java,
 C/C++ and Eiffel development setups to be configured jointly.? The reference
 deployment of the web service is therefore the most practical way of
 experimenting with functionality. There are issues related to serialization
 of various AOM items, and it you notice errors in the XML output, please let
 us know so that we can fix them.

 We would like to thank Thomas Beale of Ocean Informatics for providing
 access to his Eiffel source code and his contributions to this work, which
 enables us to share our work with the community.

 Kind regards

 Seref Arikan  Professor David Ingram,
 UCL, CHIME
 ___
 openEHR-technical mailing list
 openEHR-technical at openehr.org
 http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical






Bosphorus web services beta announcement

2011-11-15 Thread pablo pazos

Thank you Seref impressive work!
I'll try the JSON services to do some javascript gui generation.

-- 
Kind regards,
Ing. Pablo Pazos Guti?rrez
LinkedIn: http://uy.linkedin.com/in/pablopazosgutierrez
Blog: http://informatica-medica.blogspot.com/
Twitter: http://twitter.com/ppazos

Date: Tue, 15 Nov 2011 09:45:18 +
Subject: Bosphorus web services beta announcement
From: serefari...@kurumsalteknoloji.com
To: openehr-technical at openehr.org

Dear members of the openEHR community, 


Having reached a point where project Bosphorus has reached a functional 
state, we have deployed and experimental web service under Opereffa's 
current server. 

The web service exposes the archetype parser 
functionality of Thomas Beale's Eiffel code base with XML and JSON 
output. There is a simple web application at 
http://opereffa.chime.ucl.ac.uk/bosphorus/ which uses this web service to 
display XML and JSON output. 




The web service is as simple as possible to use: calling 
http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslist 
returns an XML list of the archetypes in repository, and calling 
http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetype with 
the archetype name as the parameter such as: 
http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetype?archetypeName=openEHR-EHR-CLUSTER.case_identification.v1
 returns the XML output. Simply changing the URLS to 
http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslistjson
 and 
http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypejson 
allows access to JSON output. 




There are known issues in the XML output, which we are fixing at the
 moment, but we felt that the current state of the code is capable 
enough to share with the community, to demonstrate the idea of turning 
key openEHR infrastructure functionality into web services. Thanks to 
functionality of the Eiffel reference implementation, this web service 
handles the processing of ADL 1.5 specific features and its XML output 
is valid according to published XML schemas (version 1.0.1). Please note
 that the XML or JSON output is only data, therefore its content must be
 placed into an AOM implementation to become a complete parser output, 
and we look forward to hearing from implementers, especially in the Java
 space to collaborate on this. 


In the near future, we are going to be extending the set of 
services, and we would be glad to hear about your ideas for new web 
services in the tooling space. 

The packaging and release of code
 will follow soon, but it will take time since Bosphorus has a fairly 
complicated development setup, requiring Java, C/C++ and Eiffel 
development setups to be configured jointly.  The reference deployment 
of the web service is therefore the most practical way of experimenting 
with functionality. There are issues related to serialization of various
 AOM items, and it you notice errors in the XML output, please let us 
know so that we can fix them. 


We would like to thank Thomas Beale of Ocean Informatics for 
providing access to his Eiffel source code and his contributions to this
 work, which enables us to share our work with the community.

Kind regards


Seref Arikan  Professor David Ingram, 
UCL, CHIME


___
openEHR-technical mailing list
openEHR-technical at openehr.org
http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical 
  
-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/2015/f7fc7e65/attachment.html


Bosphorus web services beta announcement

2011-11-15 Thread Seref Arikan
Hi Rong,
Actually, brute code would not be that hard to write here. I do not know if
the AOM implementation is still immutable, but even then, a field by field
copy to your AOM classes is not that much of a task.
A very boring one to be honest, but I've already written that to put
protocol buffer messages into JAXB classes, this is how the web service
works.

Another idea I have in mind is to wrap JAXB classes via AOM classes
(getters/setters). I'll need to write some code to get a feel for it.

Kind regards
Seref


On Tue, Nov 15, 2011 at 1:30 PM, Rong Chen rong.acode at gmail.com wrote:

 Hi Seref,

 Thanks for the hard work to make this happen! I will definitely try it out.

 Regarding the XML output, I think we need to find away of mapping the
 content to the AOM implementation in java so we can utilize the
 existing functionality in the java library.

 Cheers,
 Rong

 On 15 November 2011 10:45, Seref Arikan
 serefarikan at kurumsalteknoloji.com wrote:
  Dear members of the openEHR community,
 
  Having reached a point where project Bosphorus has reached a functional
  state, we have deployed and experimental web service under Opereffa's
  current server.
 
  The web service exposes the archetype parser functionality of Thomas
 Beale's
  Eiffel code base with XML and JSON output. There is a simple web
 application
  at http://opereffa.chime.ucl.ac.uk/bosphorus/ which uses this web
 service to
  display XML and JSON output.
 
  The web service is as simple as possible to use: calling
 
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslist
  returns an XML list of the archetypes in repository, and calling
  http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypewith
  the archetype name as the parameter such as:
 
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetype?archetypeName=openEHR-EHR-CLUSTER.case_identification.v1
  returns the XML output. Simply changing the URLS to
 
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslistjson
  and
 
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypejson
  allows access to JSON output.
 
  There are known issues in the XML output, which we are fixing at the
 moment,
  but we felt that the current state of the code is capable enough to share
  with the community, to demonstrate the idea of turning key openEHR
  infrastructure functionality into web services. Thanks to functionality
 of
  the Eiffel reference implementation, this web service handles the
 processing
  of ADL 1.5 specific features and its XML output is valid according to
  published XML schemas (version 1.0.1). Please note that the XML or JSON
  output is only data, therefore its content must be placed into an AOM
  implementation to become a complete parser output, and we look forward to
  hearing from implementers, especially in the Java space to collaborate on
  this.
 
  In the near future, we are going to be extending the set of services,
 and we
  would be glad to hear about your ideas for new web services in the
 tooling
  space.
 
  The packaging and release of code will follow soon, but it will take time
  since Bosphorus has a fairly complicated development setup, requiring
 Java,
  C/C++ and Eiffel development setups to be configured jointly.  The
 reference
  deployment of the web service is therefore the most practical way of
  experimenting with functionality. There are issues related to
 serialization
  of various AOM items, and it you notice errors in the XML output, please
 let
  us know so that we can fix them.
 
  We would like to thank Thomas Beale of Ocean Informatics for providing
  access to his Eiffel source code and his contributions to this work,
 which
  enables us to share our work with the community.
 
  Kind regards
 
  Seref Arikan  Professor David Ingram,
  UCL, CHIME
  ___
  openEHR-technical mailing list
  openEHR-technical at openehr.org
  http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical
 
 

 ___
 openEHR-technical mailing list
 openEHR-technical at openehr.org
 http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical

-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/2015/eff5499c/attachment.html


Bosphorus web services beta announcement

2011-11-15 Thread Seref Arikan
Thanks Pablo,
I'm going to be updating the service today, and it is not a production
service, but if you have any issues do let me know. It would be interesting
to see if this can support a gui generation scenario. Please let us know
how it goes!

Kind regards
Seref


On Tue, Nov 15, 2011 at 3:19 PM, pablo pazos pazospablo at hotmail.com wrote:

  Thank you Seref impressive work!

 I'll try the JSON services to do some javascript gui generation.

 --
 Kind regards,
 Ing. Pablo Pazos Guti?rrez
 LinkedIn: http://uy.linkedin.com/in/pablopazosgutierrez
 Blog: http://informatica-medica.blogspot.com/
 Twitter: http://twitter.com/ppazos http://twitter.com/ppazos

 --
 Date: Tue, 15 Nov 2011 09:45:18 +
 Subject: Bosphorus web services beta announcement
 From: serefarikan at kurumsalteknoloji.com
 To: openehr-technical at openehr.org


 Dear members of the openEHR community,

 Having reached a point where project Bosphorus has reached a functional
 state, we have deployed and experimental web service under Opereffa's
 current server.

 The web service exposes the archetype parser functionality of Thomas
 Beale's Eiffel code base with XML and JSON output. There is a simple web
 application at http://opereffa.chime.ucl.ac.uk/bosphorus/ which uses this
 web service to display XML and JSON output.

 The web service is as simple as possible to use: calling
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslistreturns
  an XML list of the archetypes in repository, and calling
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypewith 
 the archetype name as the parameter such as:
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetype?archetypeName=openEHR-EHR-CLUSTER.case_identification.v1returns
  the XML output. Simply changing the URLS to
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslistjsonand
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypejsonallows
  access to JSON output.

 There are known issues in the XML output, which we are fixing at the
 moment, but we felt that the current state of the code is capable enough to
 share with the community, to demonstrate the idea of turning key openEHR
 infrastructure functionality into web services. Thanks to functionality of
 the Eiffel reference implementation, this web service handles the
 processing of ADL 1.5 specific features and its XML output is valid
 according to published XML schemas (version 1.0.1). Please note that the
 XML or JSON output is only data, therefore its content must be placed into
 an AOM implementation to become a complete parser output, and we look
 forward to hearing from implementers, especially in the Java space to
 collaborate on this.

 In the near future, we are going to be extending the set of services, and
 we would be glad to hear about your ideas for new web services in the
 tooling space.

 The packaging and release of code will follow soon, but it will take time
 since Bosphorus has a fairly complicated development setup, requiring Java,
 C/C++ and Eiffel development setups to be configured jointly.  The
 reference deployment of the web service is therefore the most practical way
 of experimenting with functionality. There are issues related to
 serialization of various AOM items, and it you notice errors in the XML
 output, please let us know so that we can fix them.

 We would like to thank Thomas Beale of Ocean Informatics for providing
 access to his Eiffel source code and his contributions to this work, which
 enables us to share our work with the community.

 Kind regards

 Seref Arikan  Professor David Ingram,
 UCL, CHIME
 ___ openEHR-technical mailing
 list openEHR-technical at openehr.org
 http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical

 ___
 openEHR-technical mailing list
 openEHR-technical at openehr.org
 http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical


-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/2015/ac89da83/attachment.html


Bosphorus web services beta announcement

2011-11-15 Thread pablo pazos

No problem, I'm sure this could be used to GUI generation, since we already had 
this implemented, but we need to represent our templates with JSON too to do a 
100% javascript GUI generator, now I have translate our XML templates to JSON 
and do a couple of tests. I'll let you know when I have something to show.

-- 
Kind regards,
Ing. Pablo Pazos Guti?rrez
LinkedIn: http://uy.linkedin.com/in/pablopazosgutierrez
Blog: http://informatica-medica.blogspot.com/
Twitter: http://twitter.com/ppazos

Date: Tue, 15 Nov 2011 15:27:28 +
Subject: Re: Bosphorus web services beta announcement
From: serefari...@kurumsalteknoloji.com
To: openehr-technical at openehr.org

Thanks Pablo, 
I'm going to be updating the service today, and it is not a production service, 
but if you have any issues do let me know. It would be interesting to see if 
this can support a gui generation scenario. Please let us know how it goes!


Kind regards
Seref


On Tue, Nov 15, 2011 at 3:19 PM, pablo pazos pazospablo at hotmail.com wrote:






Thank you Seref impressive work!
I'll try the JSON services to do some javascript gui generation.

-- 
Kind regards,
Ing. Pablo Pazos Guti?rrez
LinkedIn: http://uy.linkedin.com/in/pablopazosgutierrez

Blog: http://informatica-medica.blogspot.com/
Twitter: http://twitter.com/ppazos


Date: Tue, 15 Nov 2011 09:45:18 +
Subject: Bosphorus web services beta announcement
From: serefari...@kurumsalteknoloji.com

To: openehr-technical at openehr.org

Dear members of the openEHR community, 


Having reached a point where project Bosphorus has reached a functional 
state, we have deployed and experimental web service under Opereffa's 
current server. 

The web service exposes the archetype parser 
functionality of Thomas Beale's Eiffel code base with XML and JSON 
output. There is a simple web application at 
http://opereffa.chime.ucl.ac.uk/bosphorus/ which uses this web service to 
display XML and JSON output. 





The web service is as simple as possible to use: calling 
http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslist 
returns an XML list of the archetypes in repository, and calling 
http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetype with 
the archetype name as the parameter such as: 
http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetype?archetypeName=openEHR-EHR-CLUSTER.case_identification.v1
 returns the XML output. Simply changing the URLS to 
http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslistjson
 and 
http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypejson 
allows access to JSON output. 





There are known issues in the XML output, which we are fixing at the
 moment, but we felt that the current state of the code is capable 
enough to share with the community, to demonstrate the idea of turning 
key openEHR infrastructure functionality into web services. Thanks to 
functionality of the Eiffel reference implementation, this web service 
handles the processing of ADL 1.5 specific features and its XML output 
is valid according to published XML schemas (version 1.0.1). Please note
 that the XML or JSON output is only data, therefore its content must be
 placed into an AOM implementation to become a complete parser output, 
and we look forward to hearing from implementers, especially in the Java
 space to collaborate on this. 


In the near future, we are going to be extending the set of 
services, and we would be glad to hear about your ideas for new web 
services in the tooling space. 

The packaging and release of code
 will follow soon, but it will take time since Bosphorus has a fairly 
complicated development setup, requiring Java, C/C++ and Eiffel 
development setups to be configured jointly.  The reference deployment 
of the web service is therefore the most practical way of experimenting 
with functionality. There are issues related to serialization of various
 AOM items, and it you notice errors in the XML output, please let us 
know so that we can fix them. 


We would like to thank Thomas Beale of Ocean Informatics for 
providing access to his Eiffel source code and his contributions to this
 work, which enables us to share our work with the community.

Kind regards


Seref Arikan  Professor David Ingram, 
UCL, CHIME


___
openEHR-technical mailing list
openEHR-technical at openehr.org
http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical 
  

___

openEHR-technical mailing list

openEHR-technical at openehr.org

http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical





___
openEHR-technical mailing list
openEHR-technical at openehr.org
http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical 
  
-- next part

Bosphorus web services beta announcement

2011-11-15 Thread Thomas Beale
On 15/11/2011 15:19, pablo pazos wrote:
 Thank you Seref impressive work!

 I'll try the JSON services to do some javascript gui generation.

 -- 

for those interested in JSON, I will have a JSON outputter in the ADL 
1.5 workbench in a few days. Although it is not strictly necessary, it 
is such a simple piece of work, I might as well do it, and provide 
ourselves with a JSON reference for archetypes. I will put a small 
rule-base in allowing some variant forms to be generated. If anyone has 
specific requests, let me know.

- thomas

-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/2015/52329b28/attachment.html


Bosphorus web services beta announcement

2011-11-15 Thread Erik Sundvall
Hi!

On Tue, Nov 15, 2011 at 10:45, Seref Arikan
serefarikan at kurumsalteknoloji.com wrote:
 The web service exposes the archetype parser functionality of Thomas Beale's
 Eiffel code base with XML and JSON output.

Very nice work! Does this mean that it will be easy to keep it up to
date with the functionality of  ADL 1.5 workbench?

On Tue, Nov 15, 2011 at 20:39, Thomas Beale
thomas.beale at oceaninformatics.com wrote:
 for those interested in JSON, I will have a JSON outputter in the ADL 1.5
 workbench in a few days
...
 I will put a small rule-base in allowing some
 variant forms to be generated. If anyone has specific requests, let me know.

Some REST/HTTP/URI related thoughts below:

On Tue, Nov 15, 2011 at 10:45, Seref Arikan
serefarikan at kurumsalteknoloji.com wrote:
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslist

You might want to swap at least the resteasy part of the URI to
something not bound to a specific product before finalizing the
interface.

 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetype?archetypeName=openEHR-EHR-CLUSTER.case_identification.v1
 returns the XML output. Simply changing the URLS to
...
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypejson
 allows access to JSON output.

Having different paths in the URIs for the same resource (same
archetype in this case) actually goes against some REST principles.
XML and JSON are just different representations of the same
resource

See details regarding resource and representation in the HTTP 1.1
spec http://www.w3.org/Protocols/rfc2616/rfc2616.html or Fieldings
dissertation http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

The HTTP protocol can handle the media-type negotiation depending on
the capabilities and preferences that the client sends in the HTTP
headers. When later adding a representation with another mediatype
(e.g. YAML or protobuf) you won't need to extend the URI space (and a
lot of client code can be reused).

Of course you might want to override the HTTP negotiation in some
cases, but then I'd recommend to use a generic media URI query
parameter with values being media types
(http://en.wikipedia.org/wiki/Internet_media_type). If you also want
pretty-printing to be a selectable option (as Bosphorus seems to
provide) the resulting URI might look something like
.../getarchetype?media=application/jsonarchetypeName=openEHR-EHR-CLUSTER.case_identification.v1prettyPrint=true

Having an access route with URIs like this might also be nice in the future:
.../archetype/openEHR-EHR-CLUSTER.case_identification.v1/
(Exposes the resources nicely and gives very clean URIs in listings etc)

In LiU EEE we provide URIs to RM VERSION objects (e.g. COMPOSITIONs)
like this...
http://hostname.domain.se/ehr:example-EHR-ID/129134f5-af94-4940-bea3-ad556d0efdb8::test2.eee.mi.imt.liu.se::1
and depending on what your HTTP client asks for in the HTTP headers
different representations, like XML or HTML will be returned. If a
client wants to override e.g. preset browser settings they just append
a query string like ?media=text/html

We aim to get an updated demo server online soon too and have been
focusing more on REST for the RM side of openEHR. Source code will be
published together with a paper. Perhaps we have avoided duplication
of work if you have focused on REST for AM and we mainly for RM :-)

 In the near future, we are going to be extending the set of services, and we
 would be glad to hear about your ideas for new web services in the tooling
 space.

A web service taking a Template file (and archetypes either from
repository or uploads) as input and generating an Operational Template
(OPT) as output in JSON or XML would be very nice contribution.

There are a lot of magic output formats outlined in e.g. figure 3 of
http://www.openehr.org/svn/specification/TRUNK/publishing/architecture/am/aom1.5.pdf
that would be nice to be able produce online via http.

Again, nice work!

Best regards,
Erik Sundvall
erik.sundvall at liu.se http://www.imt.liu.se/~erisu/? Tel: +46-13-286733




Bosphorus web services beta announcement

2011-11-15 Thread Seref Arikan
Thanks Erik,
I have not given much thought to a REST-full design, and once I feel that
the functionality is worth putting into production mode, I'll certainly use
your suggestions.
I won't write comments inline to make it easier to follow :)

The idea is certainly to allow everyone (including myself) have access to
key ADL 1.5 related functionality, and ADL workbench offers a lot of that.
I've done the AOM first, since that is my #1 personal requirement. I've
done very little RM, almost none, but I'll be extending this to RM too. I'd
really like to have a few other references for comparison. Tom already has
some xml output, and he'll modify that so that it'll validate via published
schemas (or fail :) ) If you put your work online, that'd be another useful
reference, I think having a few XML focused projects, especially in the
form of web services would help a lot to collaborate on a more or less
standard ITS.

I'll talk to Tom about your suggestion regarding OPT, from my point of
view, it does not sound like much work. I have actually completed only
30-40% ish of the total code I'd have to write, I am only doing Eiffel to
Java with AOM. The full scope is bi directional AOM + RM. Good news is, it
is not really intellectually a big challange now, since I've got the design
working. Bad news is, it is a large piece of very boring code to write.
The Eiffel code has been under Eiffel SVN branch for a while, I'll update
that in a few days, and I'll also upload the code of the web service and
simple web app under Opereffa's svn server. If you're curious about how
this works, you can take a look at the code.

Thanks for the kind feedback, and I look forward to working more on this.

Best Regards
Seref


On Tue, Nov 15, 2011 at 10:19 PM, Erik Sundvall erik.sundvall at liu.sewrote:

 Hi!

 On Tue, Nov 15, 2011 at 10:45, Seref Arikan
 serefarikan at kurumsalteknoloji.com wrote:
  The web service exposes the archetype parser functionality of Thomas
 Beale's
  Eiffel code base with XML and JSON output.

 Very nice work! Does this mean that it will be easy to keep it up to
 date with the functionality of  ADL 1.5 workbench?

 On Tue, Nov 15, 2011 at 20:39, Thomas Beale
 thomas.beale at oceaninformatics.com wrote:
  for those interested in JSON, I will have a JSON outputter in the ADL 1.5
  workbench in a few days
 ...
  I will put a small rule-base in allowing some
  variant forms to be generated. If anyone has specific requests, let me
 know.

 Some REST/HTTP/URI related thoughts below:

 On Tue, Nov 15, 2011 at 10:45, Seref Arikan
 serefarikan at kurumsalteknoloji.com wrote:
 
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypeslist

 You might want to swap at least the resteasy part of the URI to
 something not bound to a specific product before finalizing the
 interface.

 
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetype?archetypeName=openEHR-EHR-CLUSTER.case_identification.v1
  returns the XML output. Simply changing the URLS to
 ...
 
 http://opereffa.chime.ucl.ac.uk/bosphorus/resteasy/openehr/getarchetypejson
  allows access to JSON output.

 Having different paths in the URIs for the same resource (same
 archetype in this case) actually goes against some REST principles.
 XML and JSON are just different representations of the same
 resource

 See details regarding resource and representation in the HTTP 1.1
 spec http://www.w3.org/Protocols/rfc2616/rfc2616.html or Fieldings
 dissertation http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

 The HTTP protocol can handle the media-type negotiation depending on
 the capabilities and preferences that the client sends in the HTTP
 headers. When later adding a representation with another mediatype
 (e.g. YAML or protobuf) you won't need to extend the URI space (and a
 lot of client code can be reused).

 Of course you might want to override the HTTP negotiation in some
 cases, but then I'd recommend to use a generic media URI query
 parameter with values being media types
 (http://en.wikipedia.org/wiki/Internet_media_type). If you also want
 pretty-printing to be a selectable option (as Bosphorus seems to
 provide) the resulting URI might look something like

 .../getarchetype?media=application/jsonarchetypeName=openEHR-EHR-CLUSTER.case_identification.v1prettyPrint=true

 Having an access route with URIs like this might also be nice in the
 future:
 .../archetype/openEHR-EHR-CLUSTER.case_identification.v1/
 (Exposes the resources nicely and gives very clean URIs in listings etc)

 In LiU EEE we provide URIs to RM VERSION objects (e.g. COMPOSITIONs)
 like this...

 http://hostname.domain.se/ehr:example-EHR-ID/129134f5-af94-4940-bea3-ad556d0efdb8::test2.eee.mi.imt.liu.se::1
 and depending on what your HTTP client asks for in the HTTP headers
 different representations, like XML or HTML will be returned. If a
 client wants to override e.g. preset browser settings they just append
 a query string like ?media=text/html