Date
23/12/2010
In Attendance
Agenda
- Quickly review previous meeting minutes (5 min)
- 1.8 Update (20 min)
- Webservices 1.0 discussion meeting (60 min)
- After-action review & next week's agenda (5 min)
Minutes
Real-time notes: http://notes.openmrs.org/devcall20101223
Web services 1.0 talking points
- End goal?
- How many services, how many objects, etc
- Soap vs REST
- both?
- Is there a framework that will help us combine them?
- Baked into API, or separate module?
- Any good examples of object+transaction based APIs out there?
- Atlassian JIRA API
- Atlassian Confluence Remote API
- Authentication methods?
- Session-capable (OAuth 2.0 , OpenID)
- (REST module uses stateless basic auth through request now)
- Publish a WSDL /WADL (Why Contract First?) - (Interesting Debate on Contract First Vs Code First )
Outcomes
Transcripts
- Backchannel IRC transcript
- Audio recording of the call: Listen online or download - available after the meeting
Notes
Last Week's TODOs:
- Need a ticket to test new 1.8 widgets in FormEntry (Burke is creating)
- Figure out how to mavenize modules
1.8 Update
- Beta release will be Jan 6 2011
- Darius has a few tickets left that should be done by then
- Speed difference for location search is a red flag, but it is due to a built-in 400ms delay on all searches
- For the sake of performance testing, set the delay to zero
- Argument against that: trying to mimic a realistic environment, not optimal
- TODO: reassign TRUNK-1707 (jQuery UI themerolling)
- TODO: increase resources for OpenMRS servers (test and apps), get OSU involved
- TODO: Wyclif will email Zabil and cc: Darius re: 1.8 installer
Web Services
- End goal?
- 0.1
- Requirements
- Within a module (not built into core)
- Must allow API methods to be easily exposed to web services
- Must allow modules to easily expose methods through web services (or at least head down this path)
- Should limit/avoid business rules in web service layer – i.e., thin layer exposing API methods
- Must support secure connections
- Methods are documented on the wiki
- Strategy
- Not covering full API
- Not 100% final – will need to allow for us to fail and iterate
- Not part of core
- Not necessarily using the same objects as the API – i.e., introduce DTOs
- How many services, how many objects, etc?
- Authentication
- R (get & search) methods (concept, person, user, locations, cohorts, ...)
- CRUD methods (patient, encounter, obs)
- Export "patient" (with their encounters, obs, etc.)
- 0.2
- HL7
- CRUD for metadata
- Run rule(s)
- Get reports for a time period
- Strategy and road map?
- Web service-a-thon? If so, when?
- What's the plan to move Web Services forward? Who is going to do what?
- Soap vs REST vs. both?
- Is there a framework that will help us combine them?
- Burke: SOAP++ for heavy work, ReST++ for quick & dirty
- Darius: wants ReST and SOAP requests to have the same underlying method returning the same data
- Sunny: SOAP = WSDL, ReST = WADL (Spring supports ... ReST?)
- Summary: would like both (i.e., pseudo-REST by exposing methods as simple HTTP calls)
- JSON vs XML vs. both?
- SDMX-HD = XML
- Summary: would like both
- Baked into API, or separate module?
- Any good examples of object+transaction based APIs out there?
- Atlassian JIRA API
- Atlassian Confluence API (http://confluence.atlassian.com/x/3QI)
- Facebook API
- Twitter API
- Google Health
- GDATA for Google Health exposes a subset of CCR
- Microsoft Healthvault
- How is authentication handled?
- Authentication methods?
- REST module uses stateless basic auth through request now
- Session-capable – i.e., token-based
- Authenticate to get token
- Token sent to all subsequent calls
- Authenticate as user
- Publish a WSDL (Why Contract First?? )