API reference documentation for all modules located at: https://dev.folio.org/reference/api/
Links to PO documentation for data elements: https://docs.google.com/spreadsheets/d/1B924D2JaFUc6dqgItyKoOFdhn36lxwT6jaYmKpyk2Ws/edit#gid=1697459676
Voyager report example: Missing Items - OKU 10.10.18-10.23.18.pdf
*Report needed in order to withdraw missing items
*Inform replacement decisions
*need to know what is missing in order to replace, purchase items; ability to get circulation informatio
*Reports items that were discharged at a circulation desk other than their "home" circulation desk and haven't yet been discharged at home. Therefore the items might have been lost or misplaced on their way back to their home location.
Report Description Detail
- This report is modeled on ID464 (REP-152), a monthly report listing all lost or/and missing items, and ID472 (REP-190), a daily missing-in-transit report.
Data fields
- Item status, status date, item notes and note type, item call number and ID, all item descriptors (call number, barcode, title, etc.), material type details, location fields, circ desk where discharged, home circ desk, date discharged
Report Criteria
- Within a specified date range, provides listing of items lost and/or missing by location, and of items lost in transit from one library location to another, along with details of the item (title, barcode, publisher, date when it entered the system, etc.), date it was discharged (if lost in transit) and item circulation stats (count of historical charges within a specified date range).
Filters
- Date range, status type (either lost or missing), missing in transit (if the loan has been discharged but the item has not been received at the home location within a specified period of time).
Folio Attribute (Module/Path:Object) | Folio Data Element Description | Parameters/Query |
---|---|---|
Table name: mod-inventory-storage/item-storage/items | ||
Item ID (mod-inventory-storage/item-storage/items/ID) | The inventory ID of the item | Provides a join between mod-inventory-storage/item-storage/items and mod-circulation-storage/loan-storage/loans |
Item holdings record ID (mod-inventory-storage/item-storage/items/holdingsRecordID) | The holdings record ID of the item | Provides a join between mod-inventory-storage/item-storage/items and mod-inventory-storage/holdings-storage/holdings |
Item Location (mod-inventory-storage/item-storage/items/permanentLocationID) | Item's permanent location ID | Needed to pull in 'name' element from mod-inventory-storage/locations, as searches for missing items are done by specific location, and all location fields need to be included |
Item Location mod-inventory-storage/item-storage/items/temporaryLocationID) | Item's temporary location ID | Needed to pull in 'name' element from mod-inventory-storage/locations, as searches for missing items are done by specific location, and all location fields need to be included |
Transit Destination Service Point ID (mod-inventory-storage/item-storage/items: inTransitDestinationServicePointID) | Service point ID where an item is intended to be transited to | Provides a join between mod-inventory-storage/item-storage/items and mod-inventory-storage/service-point/service-points |
Item Barcode (mod-inventory-storage/item-storage/items/barcode) | The barcode of the item | Needed for item search/replacement |
Material Type ID (mod-inventory-storage/item-storage/items/materialTypeID) | ID of the material type | Needed for item search/replacement |
Item Status (mod-inventory-storage/item-storage/items/status:name) | The item's status (e.g. Available, Checked out, Lost/missing, etc.) | Where status.name="Lost" or "Missing" OR where status.name="In transit" |
Item Status Date (mod-inventory-storage/item-storage/items/status:date) | The date an item was flagged as "Lost" or "Missing" | For missing/lost items:This data element provides the main filter point for this report (where statusDate Between [start] And [end]). For items missing in transit: where today's date minus statusDate is greater than a specified period, e.g, 5 days |
Item Call Number (mod-inventory-storage/item-storage/items/itemLevelCallNumber) | The call number of the item | Needed for item search/replacement |
Item Volume Number (mod-inventory-storage/item-storage/items/itemVolumeNumber) | Used for a multipart monograph | Needed for item search/replacement |
Item Enumeration (mod-inventory-storage/item-storage/items/enumeration) | Item enumerator (e.g., vol. 1, No. 2, etc.) | Needed for item search/replacement |
Item Chronology (mod-inventory-storage/item-storage/items/chronology) | Descriptive information for the dating scheme of a serial | Needed for item search/replacement |
Item Copy Number (mod-inventory-storage/item-storage/items/copyNumbers) | Item copy number (e.g., copy 1, copy 2, etc.) | Needed for item search/replacement |
Item note (mod-inventory-storage/item-storage/items/notes: description) | Notes about the item | The item notes field may contain information that could be useful for an item search. All notes associated with an item should be included. |
Table name: mod-inventory-storage/holdings-storage/holdings | ||
Item holdings ID (mod-inventory-storage/holdings-storage/holdings/ID) | The holdings ID of the item | Provides a join between mod-inventory-storage/holdings-storage/holdings and mod-inventory-storage/item-storage/items. |
Item Location (mod-inventory-storage/holdings-storage/holdings/permanentLocationID) | Item's permanent holdings location ID | Needed to pull in 'name' element from mod-inventory-storage/locations, as searches for missing items are done by specific location, and all location fields need to be included |
Item Location (mod-inventory-storage/holdings-storage/holdings/temporaryLocationID) | Item's temporary holdings location ID | Needed to pull in 'name' element from mod-inventory-storage/locations, as searches for missing items are done by specific location, and all location fields need to be included |
Item Title (mod-inventory-storage/holdings-storage/holdings/shelvingTitle) | The title of the lost/missing item | Needed for item search/replacement |
Instance ID (mod-inventory-storage/holdings-storage/holdings/InstanceID) | The instance ID of the item | Provides a join between mod-inventory-storage/holdings-storage/holdings and mod-inventory-storage/instance-storage/instances. |
Table name: (mod-circulation-storage/loan-storage/loans | ||
Item checkout location (mod-circulation-storage/loan-storage/loans/itemEffectiveLocationAtCheckOut) | Location from where item was checked out | (not sure if this is needed for this report) |
loan ID (mod-circulation-storage/loan-storage/loans/id) | Loan ID | Needed to count the number of unique loans, to calculate historic charges |
loan renewal count (mod-circulation-storage/loan-storage/loans/renewal count) | Number of times an item loan has been renewed | Needed to add to the count of unique loan ids to calculate historic charges |
Item ID (mod-circulation-storage/loan-storage/loans/itemId) | The UUID of the item | Provides a join point between mod-circulation-storage/loan-storage/loans and mod-inventory-storage/item-storage/items |
Table name: mod-inventory-storage/instance-storage/instances | ||
ID (mod-inventory-storage/instance-storage/instances/ID) | The instance ID of the item | Provides a join between (mod-inventory-storage/instance-storage/instances and mod-inventory-storage/holdings-storage/holdings |
Date of Publication (mod-inventory-storage/instance-storage/instances/publication:dateOfPublication) | Date (year YYYY) of publication, distribution, etc. | Needed for item search/replacement |
Item Record Date (mod-inventory-storage/instance-storage/instances/cataloguedDate) | Date item record was created (date the item first entered the system after being acquired) | Needed for item search/replacement |
Table name: mod-inventory-storage/material-types | ||
(mod-inventory-storage/material-types/ID) | The material type ID of the item | Provides a join between mod-inventory-storage/material-types and mod-inventory-storage/item-storage/items |
Material Type Name (mod-inventory-storage/material-types/name) | Name of the material type (e.g., book, DVD, etc.) | Needed for item search/replacement |
Table name: mod-inventory-storage/locations | ||
Location name (mod-inventory-storage/locations/name) | Name of location | For both reports, this provides a filter, as searches for missing items are done by specific location. |
Location ID (mod-inventory-storage/locations/ID) | ID of the location | Provides a join between mod-inventory-storage/locations and mod-inventory-storage/item-storage/items |
Table name: mod-inventory-storage/service-point/service-points | ||
Transit Destination Service Point ID (mod-inventory-storage/service-point/service-points: ID) | ID of the (transit destination) service point | Provides a join between mod-inventory-storage/service-point/service-points and mod-inventory-storage/item-storage/items |
Transit Destination Service Point Name (mod-inventory-storage/service-point/service-points: name) | name of the (transit destination) service point | Needed for lost in transit report, in case the item was incorrectly routed |
Comments from Angela:
- Why pull permanent and temporary location from holdings instead of items? Locations have complicated inheritance logic, so you may need to grab multiple locations. If you need the item's location at the time of checkout, that is now stored in the loan record as the "effective location" (mod-circulation-storage/loan-storage/loans:itemEffectiveLocationAtCheckOut), but the item might have a new effective location by the time it's checked back in and then lost in transit. If you really just need the item's permanent and temporary location, you might want to use the items table, or you might want to grab locations from both holdings and items. It depends a bit on why the report is asking for location. Either way, might be good to document why you're picking certain location fields over others. (I fixed this-VS)
- Correction for "checkInServicePointID": "loan-storage" is under mod-circulation-storage, not mod-inventory-storage, and you haven't listed what interface under loan-storage you're using (should be "loans", I assume); you also call this "Item location", but it should probably be something more like "Loan Check-In Service Point" (I removed this element, as it wasn't really needed in this report - VS)
- "materialTypeId": I don't think this is a descriptive field. I think it is an ID that links to the material_types table. I think you need to list this field, then also list the material_types interface for its id and name fields. All the ID fields have type "string," but I'm pretty sure that if it says ID in the field name, it is going to be the UUID format and not a human-readable name. (Fixed-VS)
- I don't think it's useful to add "data" in the FOLIO path. That's an LDP construct and isn't actually in the instance or item record. (removed-VS)
- I think it would be helpful to add the fields that link the tables. For example, items links to holdings through the item's holdingsRecordId, but you haven't listed items:holdingsRecordId or holdings:id. (Added-VS)
- For historic charges, one way you could do that is to count the unique loans of that particular item. That wouldn't require going through the loan-history table - just the normal loans table would be able to answer that question. That might be as useful as knowing all the individual transactions with that item, but if not you could also add that number to the sum of the renewals across all of the loans for that item. Basically, we should easily be able to answer number of loans and/or renewals for each item, but number of requests or holds would be harder. (added elements-VS)