DCB Questions

DCB Questions

#

Assumption

Status

#

Assumption

Status

1

There is no entry in audit-log table for virtual items and virtual patron.

TBD

2

In CIRCLOG screen, any entry for virtual patron (lending and pickup libraries), user barcode will be received as "-" in get API

TBD

3

In CIRCLOG screen, any entry for virtual patron (borrowing libraries), item barcode will not be provided in get API

TBD

4

As per pre-requisites, there will be patron groups already created in Folio which will be used by DCB

TBD

5

DCB user needs to be a value "DCB" against user_type

Agreed by Kalibek

6

Umbrella Instance and Holding are not to be displayed on ui-inventory module. They are not searchable, and user cannot perform any actions on them.



7

Alias (via a DCB suffix/prefix) - Inventory Instance and related data created for DCB - same for Users related data created for DCB

Agreed by Kalibek

8

Notices are not triggered for virtual patrons

Agreed by Kalibek

9

Patron Notifications and Fee Fines should not be sent to virtual patrons from lending and pickup libraries. These loan policies should be managed by library staff manually as part of configuration.

TBD

Back-end

#

Question

Answer

Comments

#

Question

Answer

Comments

1

When we are creating a request in lending, borrowing and pickup library,

what is the service point that we needs to use ? 



Answer provided by @Tim Auger

We will not use a dedicated service point. We will use a proxy service point for each pickup location that every library within the consortium will add to their list of service points (or the equivalent in their platforms).

Example:
SP1 at Braden University is a defined pickup type Service Point in their tenant

which is equivalent to...

BradenSP1 at Spongebob Public Library is a defined pickup type proxy (or virtual) Service Point.

When a patron selects their pickup location from the list of available pickup locations, they choose SP1. When the DCB generates a message to place a page at the lending location, it will map SP1 to BradenSP1 using the DCB API. I believe we would set the service point in the patron record? It is not clear to me how we would do that but I think Steve could help us track it down.



Sep 19, 2023 Tim Auger

@Steve Ellis @Gurleen Kaur1 @Kalibek Turgumbayev @Irina Pokhylets @Vignesh Kalyanasundaram Steve and I talked further about service points on Friday and Monday. For FOLIO libraries, we hypothesized that a proxy pickup service point would probably not be necessary to accomplish the goal of routing to the destination pickup location. That said, we still need to add the pickup location name to the DCB patron request since the data will be needed for transit slips and FOLIO circulation app displays.

Question1: If we have a UUID for the real pickup location, should that be passed to the lending library as well? How would we use it?

Question2: Do we need a valid pickup service point in the request or can we get away with less than valid?

Are we going to use dedicated service point.

@Tim Auger As per the below API contract,
https://folio-org.atlassian.net/wiki/display/FOLIJET/%5BDRAFT%5D+DCB+Integration?preview=/118270611/118272269/API-contract.yaml

So, Does this mean DCB will provide a valid service point value in the pickupLocation field for every post request. 



Answer provided by

@Tim Auger

Yes. For every item request, a valid service point is required for all transaction legs.

2

For checkin/checkout by barcode in the code its noticed that fetchItemRelatedRecords has also been called. In this method item's related record data is fetched based on the holdingsRecordId, materialTypeID, permanentLoanTypeId and effectiveLocationId. As per the design the new table CirculationItem table does not have these columns or tables for such kind of data. From where the virtual items related data will be fetched ? and where it will be persisted ? 



(Steve) See my question below this one.

2.1

Looking at the code for fetchItemRelatedRecords  it would appear that there is the possibility of returning an empty Instance  and an empty Holdings – not an null but an empty object. See for example what ofAsync(Instance::unknown)  does. My question is did we try checkout using an empty objects for these two types? Because if we could get it to succeed with these empty objects we wouldn't have to create umbrella ones.

??



3

DCB material type will it be matched with folio material type ? Every material type will have a circulation rule associated with it. How will it be handled in case of DCB material type ?

Answer provided by @Tim Auger

Yes, DCB (borrowing or pickup) material types will be matched with FOLIO material types. That said, the distinguishing bit of data for circulation rules is the unique agency location code. So, technically, unless there is one or more uniquely defined materials types  amongst all members, there isn't a need for loans to use a "DCB" material type. The existing material types should suffice.

Either way, the DCB will have a mapping table to map equivalent material types across the entire consortium to their local equivalents. 

@Tim Auger you mentioned that DCB will have a mapping table. So do we need to call the table to get the local equivalent material type or DCB will do the mapping and send us the valid material-type in the Post transaction



Answer provided by @Tim Auger

DCB will do the mapping and send the valid material-type in the post tranaction.

4

Will DCB have a dedicated circulation policy ? How will that be set via scripts or via system admin user? 

Answer provided by @Tim Auger

DCB will make use of circulation rules just like standard/local circulation.



5

Does checkin and checkout action on a DCB virtual item schedule notices ?

Answer provided by @Tim Auger

It depends.

At the borrowing library, the corresponding circulation rules should have associated notices. 

At the pickup library, no. When the pickup library receives the item, the DCB polling will pickup the status change and then post a change to the borrowing library system to indicate the change of state. The change of state will be changed, as if it had changed locally at the borrowing library, to awaiting pickup. That will trigger a pickup notice. The pickup notice will be populated with the proxy pickup location. The patron will receive the notice about where to pickup, go to that location and have the item circulated to the patron. In turn, that will trigger another synchronization event between pickup and borrowing location, checking out the item to the patron as if it had been performed at the borrowing library.



6

The temporary patron/user will be created in mod-users module from mod-dcb ?

(Kalibek) Yes, the patron should be created by mod-dcb



7

Will this temporary patron/user behave like a real user in terms of its loans getting assosciated, fee/fines, requests etc ?

(Kalibek) 

Only in a limited sense, fee/fines and requests should be handled only in the borrowing role, where a patron is the real patron



8

Will this temporary patron/user be searchable in user app ? Will this user be allowed all the actions like a real user? 

(Kalibek) No, temporary patron should not be searchable and only have to have limited access



9

Will there be loans created for a temporary user ?

(Kalibek) Necessary loans should be create



10

In checkout screen as of today the user is searched by barcode the screen has many information provided like shown below how does the screen appear for a temporary patron/user ? – 

(Kalibek) That's a question for BA/PO. Let's check with Irina Pokhylets and Tim Auger 

Comment provided by @Tim Auger

Please see the table"Front-end" questions for a response to this question.

11

In the code there is a check for isRequestedByAnotherPatron - Does the check prevail for a DCB item ?

??



12

What will be the patron group of DCB user ? Will this patron group be present in folio and who and how will its rules be set?

(Kalibek) That's a question for BA/PO. Let's check with Irina Pokhylets and Tim Auger 

Comment provided by @Tim Auger

see the three questions and my responses in Single instance/holding prerequisites

13

Will there be notices sent for a temporary user/patron ?

(Kalibek) Notices should be managed in the patron's library (borrowing side)

Comment provided by @Tim Auger

There is no reason to prevent DCB patrons from having notices defined as part of a circulation rule. But, it would be a very odd use case if you did and against convention for these types of system. Circulation rules will need to account for disabling notices by default for DCB transactions. 

14

Do we need to add an entry in patron_action_session table for the checkout from a temporary user ?

(Kalibek) Let's investigate this in detail, most probably, yes.



15

Lets assume for some reason our system is not able to process the page request creation or virtual patron creation, In this case what will be the transaction status ? As of now there are no error state in the state transition diagram.

(Tim) Yes, we will need to add some error states. I think these are the types of errors that need to be examine by the DCB administrator.



16

Can you please share a sample Post request payload which we will get from DCB ?

(Tim) See line 17? I have commented on the payload in the top row of this table.



17

Assuming the payload should like below,

"DCBItem" : {
  "uuid": "b0bb7419-ed62-41cc-8377-c0f2ae0ac82d",
  "title": "Test",
  "barcode": "DCBItem1",
  "pickupLocation": "Datalogisk Institut",
  "materialType": "book",
  "lendingLibraryCode": "KU"
},
"DCBPatron" : {
  "uuid": "07299e95-8c05-444b-ab21-536331a9e514",
  "patronGroup": "staff",
  "patronBarcode": "DCBUser1",
  "borrowingLibraryCode": "E"
}, if we want to create a Virtual Patron from the above request , we can create patron only with the below information.

{
    "patronGroup""503a81cd-6c26-400f-b620-14c08943697c",
    "barcode""DCBUser1",
    "id""07299e95-8c05-444b-ab21-536331a9e514"

There wont be any first name or last name or any other fields for a virtual patron. @Tim Auger @Irina Pokhylets Is it fine to create a virtual patron only with the above fields. Please confirm

@Irina Pokhylets @Tim Auger 

When we are creating a virtual patron with the barcode we received from DCB, do we need to add any prefix or suffix with the patron barcode.



@Gurleen Kaur1 since we are not checking out the item from the lending library, I no longer see a need for barcode. id and group are definitely needed. 

We may need to create a virtual patron with a name like DCB Patron <UUID>@<5 character agency/institution code>. Let's check with Ian and Marc from K-Int, what we did for Name field for Sierra implementation.

18

When we are creating a page request, what will be the value we need to give for FulfillmentPreference

Delivery or Hold Shelf

(Tim): Holdshelf. 



Front-end

#

Question

Answer

Comments

Status

Priority

#

Question

Answer

Comments

Status

Priority

1

What is the approach for creating a user/patron for a transaction? Is it a user per transaction or one dedicated user for all dcb transactions?

One user per transaction.



--

Answered



2

Should this dedicated dcb user (or all dcb users) be displayed on UI? Are they searchable? If dcb users are not searchable, should /users GET API respond with filtered (excluding dcb users) results? Usecase Ex- Users - FOLIO , Users - FOLIO

DCB users should not be searchable from within the FOLIO application.

DCB users will be available within FOLIO and will have DCB user type. 

Inquiry sent to the MCO office. See "Answer" column for the supplied answer.
@Gurleen Kaur1 to check with Tjet can their search approach be reusable for DCB patron search.
Check the approach for not displaying shadow users in search results with Kalibek

https://github.com/folio-org/ui-users/pull/2543/files

https://github.com/folio-org/mod-users/pull/305/files

Irina: The technical approach on how to exclude DCB users from search needs to be discussed. 



High

3

Does DCB user detail differ from regular users? Are they editable? How should Action menu function for dcb user?

N/A

@Tim Auger Is this question invalid, in case dcb user is not searchable?

@Priyanka Terala ^^You are correct. The question is invalid.

Answered



4

Will there be a dedicated patron group for dcb user(s)? How does its display affect user groups in user settings ex: https://folio-snapshot.dev.folio.org/settings/users/groups 

There will not be a dedicated patron group for DCB users. There will be multiple DCB patron groups.

@Priyanka Terala Please take a look at the 4 DCB patron groups I added:

https://folio-dev-volaris-diku.ci.folio.org/settings/users/groups

In nearly all cases, the configuration will have a 1:1 configuration to the major local patron groups: Undergraduate, Graduate, Faculty, Staff. But with public libraries in the mix, there will be another schema: Adult, Juvenile, Staff. I added only 4 but can add the rest. There are many other minor groups for both academic and public schemas but not necessary to implement for our efforts, just an FYI. 

@Tim Auger Should such DCB specific user groups be suppressed from being edited or deleted? If yes, what should be considered as their uniqueness - name starting with DCB?

@Priyanka Terala  I might be misunderstanding the question but why does uniqueness matter?


Irina: From a system perspective "DCB patron group" is a regular patron group. UI change on the 'Patron groups' page is not required.

Answered



4.1

Based on the comments in Question4.

  1. Are DCB patron groups intended to be suppressed from edit action?

  2. Are DCB patron groups intended to be suppressed from delete action?
    example:

Irina: UI behavior should be the same as for the regular patron group.

  1. No

  2. No



Answered



5

How does the patron blocks function for dcb user?

It's not clear from the documentation whether or not we specify "no maximum" in https://folio-dev-volaris-diku.ci.folio.org/settings/users/limits/a4301f4d-68d1-4001-bac3-15320fc5da4d . Regardless, we should be able to set a high enough maximum to effect the same behavior.





No changes for settings > patron groups-limits

Priyanka: I think automated patron blocks are in place unless some limits are set in settings > user > limits against a patron group. @Irina could you please clarify around this point? should the limits fields be disabled for DCB patron groups?

@Priyanka Terala I think we could test and I'm happy to run it.

@Tim Auger @Irina Pokhylets to test whether or not we can disable blocks.

Irina: UI change on the 'Limits' page is not required.

By default limits for patron groups are not required, so should be empty for DCB patron groups as well. DCB user is a virtual user with minimal data, so patron blocks won't be applicable for DCB users in MVP.

Answered



6

For that matter, how does each of the settings screens differ for a dcb user setting?

Irina: There is no impact on UI user settings. No change is required. 

@Tim Auger to review settings for users

Irina: There is no impact on UI user settings. No change is required. 

Answered



7

Checkout screen on lending library - does it differ for a dcb transaction? In case of many dcb users, should patron look up retrieve only dcb users? In case of a dedicated dcb user, should "patron lookup" be disabled and prefill the patron details?

Effectively, the design bypasses the need to use the checkout application for DCB transactions. When the item is paged, the page will collect the item and use the checkin application to trigger putting the item in transit to the destination pickup location. Once that happens, the item is packaged for shipment to the pickup service point (in FOLIO terms). Once checked in to the correct service point, it will trigger a state change to Awaiting Pickup where it sits on the holdshelf and triggers a pickup notice sent to the patron. It is then loaned to the patron and then returned to the borrowing library. It then goes through the shipment and delivery process to be returned to the lending library. Checkin application is used to terminate the DCB transaction and removing all DCB records.

@Tim Auger needs to  create a simulation

Priyanka: is a transit slip created when checkin happens for a dcb transaction? If yes, will there be dcb dedicated transit slip? how does the template for this dcb dedicated translip slip differ from the regular one? is this shown on settings > circulation > staffslips ? is it editable?

@Priyanka Terala Yes, a transit slip should be created when checkin happens for a DCB transaction. Ultimately, whether or not to have a dedicated transit slip is determined by the consortium but I strongly suspect the consortium will want to differentiate between local transit activity and interlibrary transit activity.



Priyanka: Needs to be discussed on dedicated transit and pick slip

Irina: Was made a decision (9/14/2023) that a dedicated DCB transit slip is out of scope. We may back to it after MVP implementation.

Answered



7.1

Based on the question7 above, @Tim Auger Confirm the approach for transit slip. Need for a dedicated transit slip? 

  1. If yes, please create a ticket with requirements.

  2. If no, how to differentiate local transit activity from interlibrary transit activity?

Irina: Was made a decision (9/14/2023) that a dedicated DCB transit slip is out of scope. We may back to it after MVP implementation.



Answered



8

How does dcb transactions impact "Circulation Log" results list based on various filters?

We need to include DCB circulation transactions into the circulation log and be able to offer much of the same field data as local circulation. Any null fields will be empty cells to the end user. 

As for the filters, most values are valid for DCB transactions and a few will not be relevant. I'll take it as an action item to identify which and how to handle.

Inquiry sent to the MCO office
@Tim Auger to specify valid filters and how to handle the remaining for DCB transactions.

Priyanka: Circulation log list have links to patrons and inventory items. @Tim Auger Does dcb transaction that shows up in circulation log list also hold links?

@Priyanka Terala For MVP, let's keep it simple and not have links to any DCB transactions. Any references to local items or patrons should remain linked. 





9

Borrow and pickup – From my reading - I could understand that umbrella instance and holding are created on inventory and virtual items on circulation-item. Is my understanding that these virtual items are not shown/visible on inventory correct? does this umbrella instance and holding differ from the regular ones on UI ex - "Add Item", Action Menu and others?

Yes, DCB virtual items are not accessible from within the Inventory application. 

Inquiry sent to the MCO office
Answered



10

Borrow and pickup – Is there a plan for implementing a UI for circulation-items

Not at this time.

--

Answered



11

Lending, Borrow and pickup – Are umbrella instance and holding searchable? some flag needed here while creation?

Not at this time.

--

Answered



12

Borrow and pickup – Does Requests UI change for DCB transactions? Should Page requests(Lending library), Hold requests(borrowing and pickup libraries) be visible on UI? Is UI similar to regular requests?

The UI should remain the same, IMHO. A large subset of the data available from local circulation transactions will be available from all DCB transactions.

@Tim Auger to define the subset of DCB filter values.