======Introduction of the 'Course' concept====== URL: Unused Http Headers: SessionID SessionTemplate SessionPatientID Http Body: Timeline: * Http connection. * Use SessionId to connect to session or use SessionTemplate/SessionPatientID to create new session. * Feed http body to session which parses it and reacts upon its content. * Reply to client Proposition: Remove all use of http headers. Use URI instead. Remove request from http body. Use URI instead. * Http connection. * Initial action is decided using the URI: * ''query/coursename[/templatename[/macroname]]?sessionid=42'' * ''query/coursename[/templatename[/macroname]]?patientid=1234567890'' * ''commit?sessionid=42'' http body containing xml with key/value pairs. * ''discard?sessionid=42'' Advantages: * No xml parsing needed to get required info on how to handle requests. * The template/patientid does not need to be passed around on the server, since the session lookup/creation is done earlier in the connection. * Redundancy is removed (http header fields and request xml http body) * Admin/Client connections can be differentiated without using the Client-Type header thus allowing the browser to act like a client (good for testing). Disadvantages: * Admin/Client connections can be differentiated without using the Client-Type header thus allowing the browser to act like a client (may confuse users).