OLE Patron Technical Specifications

Rice2.x Framework

Patron code is going to be developed using the new Rice2.x codebase which offers rich UI via the KRAD framework. The various features pertaining to Patron will be tested and demonstrated independently of OLE_Rice1.x

1. Patron Maintenance


a. KRAD Design: A simple KRAD maintenance document will be used to create and update a new or an existing patron record. 

b. Participants: OlePatronDocument.java, OlePatronDefinition.java, OlePatronContract.java, OlePatronDocument.xml, OlePatronDocumentMaintenanceDocument.xml, OlePatronMaintenanceImpl.java, ojb-repository-krms.xml

c. Framework: Rice2.x

2. Patron Search


a. KRAD Design: A simple KRAD document will be used to search,edit and copy the existing patron records.

b. Participants: OlePatronLookupableImpl.java, OlePatronInquirableImpl.java

c. Framework: Rice2.x

3. Ingest


a. KRAD Design: The ingest screen is similar to the Staff Upload screen in OLE_Rice2.x. Its a simple KRAD form with a view.xml and a controller.

b. Participants: OlePatronRecordForm.java, OlePatronRecordView.xml, OlePatronRecordController.java, OleNameTypes.java, OlePatron.java,

                        OlePatronEmailAddress.java, OlePatronGroup.java, OlePatronLevelPolicies.java, OlePatronNote.java, OlePatronPostalAddress.java,

                        OlePatronTelePhoneNumber.java, OlePatronConverterService.java

c. Framework: Rice2.x

d. Workflow

4. Security


a. Roles:

  • Patron Manager – full permissions over patron and borrower type
  • Full Circulation Attendent – view and edit patron document, view borrower type
  • Limited Circulation Attendent – view patron document, no access to borrower type

b. Permissions to do the following on the below entities:

 Patron: 

  • Create
  • Edit
  • View(Inquiry)
  • Approve

Borrower Type:

  • Create
  • Edit
  • View(Inquiry)

b. Participants:

  • oracle-ole-rice.sql (Defining roles such as Patron, Borrower type etc, defining permissions, defining role/permissions mapping)
  • mysql-ole-rice.sql (Defining roles such as Patron, Borrower type etc, defining permissions, defining role/permissions mapping)

5. Service(s): Will be published to KSB and also be accompanied by appropriate java docs


a. Creation/Updates:

OlePatronService:

  • getPatron(String patronId)
  • createPatron(OlePatronDefinition olePatron)
  • updatePatron(OlePatronDefinition olePatron)
  • inactivatePatron(OlePatronDefinition olePatron)
  • addNameToEntity(EntityName name, Entity entity)
  • updateName(EntityName name)
  • inactivateName(String nameId)
  • addEmailToEntity(List<EntityEmail> emails, EntityTypeContactInfo entityTypeContactInfo)
  • updateEmail(EntityEmail entityEmail)
  • inactivateEmail(String emailId)
  • addAddressToEntity(List<EntityAddress> entityAddress, EntityTypeContactInfo entityTypeContactInfo)
  • updateAddress(EntityAddress entityAddress)
  • inactivateAddress(String addressId)
  • addPhoneToEntity(List<EntityPhone> entityPhone, EntityTypeContactInfo entityTypeContactInfo)
  • updatePhone(EntityPhone entityPhone)
  • inactivatePhone(String phoneId)
  • addNoteToPatron(OlePatronNotesDefinition patronNote)
  • updateNote(OlePatronNotesDefinition patronNote)
  • inactivateNote(String patronNoteId)
  • getPatrons()
  • findPatron(QueryByCriteria queryCriteria)
b. Lookups/Searches

OlePatronLookupableImpl

  • public Collection<?> performSearch(LookupForm form, Map<String, String> searchCriteria, boolean bounded)

6. Data Model : The DM for Patron is going to reside in the Rice2.x Schema


7. Sign-off


Review complete? Yes (Sr.Technical Architect) - Friday May 4th, 2012

Review with Core (Handoff #2)? Yes (OLE Core Team/S&A Team) - Monday May 7th, 2012

Operated as a Community Resource by the Open Library Foundation