Page tree
Skip to end of metadata
Go to start of metadata

Planned changes in Circulation request DB schema

Current DB record structure (segments to be removed are in orange)Proposed DB record structure (segments to be added are in green)

{

  "id": "9c8583f1-8631-4194-a477-572d342cdd4d",
  "item": {
    "title": "A semantic web primer",
    "barcode": "10101",
    "identifiers": [
      {
        "value": "0262012103",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "9780262012102",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "2003065165",
        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"
      }
    ]
  },
  "itemId": "7212ba6a-8dcf-45a1-be9a-ffaa847c4423",
  "status": "Open - Not yet filled",
  "metadata": {
    "createdDate": "2021-09-09T13:14:43.756",
    "updatedDate": "2021-09-09T13:14:43.756+00:00",
    "createdByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f",
    "updatedByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f"
  },
  "position": 1,
  "requester": {
    "barcode": "10001",
    "lastName": "Kurash",
    "firstName": "Alexander"
  },
  "requestDate": "2021-09-09T13:14:41.000+00:00",
  "requestType": "Hold",
  "requesterId": "27bc1f87-8c08-437a-be09-1df885262497",
  "fulfilmentPreference": "Hold Shelf",
  "pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f"
}

{
  "id": "9c8583f1-8631-4194-a477-572d342cdd4d",
  "requestLevel": "Item",
  "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39",
  "instance": {
    "title": "A semantic web primer",
    "identifiers": [
      {
        "value": "0262012103",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "9780262012102",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "2003065165",
        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"
      }
    ]
  },
  "holdingsRecordId": "dc8ff78d-6bf0-406a-95e2-be3782357535",
  "itemId": "7212ba6a-8dcf-45a1-be9a-ffaa847c4423",
  "item": {
    "barcode": "10101"
  },
  "status": "Open - Not yet filled",
  "metadata": {
    "createdDate": "2021-09-09T13:14:43.756",
    "updatedDate": "2021-09-09T13:14:43.756+00:00",
    "createdByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f",
    "updatedByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f"
  },
  "position": 1,
  "requester": {
    "barcode": "10001",
    "lastName": "Kurash",
    "firstName": "Alexander"
  },
  "requestDate": "2021-09-09T13:14:41.000+00:00",
  "requestType": "Hold",
  "requesterId": "27bc1f87-8c08-437a-be09-1df885262497",
  "fulfilmentPreference": "Hold Shelf",
  "pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f"
}

Planned API changes

API endpoint: /circulation/requests

Note that item field has some additional instance-related values that will also be moved to the instance field.

Current JSON structure (segments to be removed are in orange)Proposed JSON structure (segments to be added are in green)


{
  "id": "d0f032db-9579-443e-a2ac-6add937f4aa2",
  "requestType": "Hold",
  "requestDate": "2021-09-06T15:37:55.000+00:00",
  "requesterId": "bec20636-fb68-41fd-84ea-2cf910673599",
  "itemId": "100d10bf-2f06-4aa0-be15-0b95b2d9f9e3",
  "status": "Open - Not yet filled",
  "item": {
    "title": "A semantic web primer",
    "barcode": "90000",
    "identifiers": [
      {
        "value": "0262012103",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "9780262012102",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "2003065165",
        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"
      }
    ],
    "holdingsRecordId": "e3ff6133-b9a2-4d4c-a1c9-dc1867d4df19",
    "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39",
    "location": {
      "name": "Annex",
      "libraryName": "Datalogisk Institut",
      "code": "KU/CC/DI/A"
    },
    "contributorNames": [
      {
        "name": "Antoniou, Grigoris"
      },
      {
        "name": "Van Harmelen, Frank"
      }
    ],
    "enumeration": "",
    "status": "Checked out",
    "callNumber": "TK5105.88815 . A58 2004 FT MEADE",
    "callNumberComponents": {
      "callNumber": "TK5105.88815 . A58 2004 FT MEADE"
    }
  },
  "requester": {
    "lastName": "morty",
    "firstName": "panic",
    "barcode": "456",
    "patronGroupId": "3684a786-6671-4268-8ed0-9db82ebca60b"
  },
  "fulfilmentPreference": "Hold Shelf",
  "pickupServicePointId": "c4c90014-c8c9-4ade-8f24-b5e313319f4b",
  "metadata": {
    "createdDate": "2021-09-06T15:37:56.188+00:00",
    "createdByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5",
    "updatedDate": "2021-09-06T15:37:56.188+00:00",
    "updatedByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5"
  },
  "position": 1,
  "loan": {
    "dueDate": "2021-09-06T16:36:56.029Z"
  },
  "pickupServicePoint": {
    "name": "Circ Desk 2",
    "code": "cd2",
    "discoveryDisplayName": "Circulation Desk -- Back Entrance",
    "description": null,
    "shelvingLagTime": null,
    "pickupLocation": true
  }
}


{
  "id": "d0f032db-9579-443e-a2ac-6add937f4aa2",
  "requestLevel": "Item",
  "requestType": "Hold",
  "requestDate": "2021-09-06T15:37:55.000+00:00",
  "requesterId": "bec20636-fb68-41fd-84ea-2cf910673599",
  "status": "Open - Not yet filled",
  "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39",
  "instance": {
    "title": "A semantic web primer",
    "identifiers": [
      {
        "value": "0262012103",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "9780262012102",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "2003065165",
        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"
      }
    ],
    "contributorNames": [
      {
        "name": "Antoniou, Grigoris"
      },
      {
        "name": "Van Harmelen, Frank"
      }
    ],

    "publication":  [ 
      {
        "publisher": "Shaker Verlag",

        "place": "Aachen",

        "dateOfPublication": "2017",

        "role": null
      } 
     ],

     "editions":  [ 
        "First edition", "Revised edition, 2005" 
     ]

  },
  "holdingsRecordId": "dc8ff78d-6bf0-406a-95e2-be3782357535",
  "itemId": "100d10bf-2f06-4aa0-be15-0b95b2d9f9e3",
  "item": {
    "barcode": "90000",
    "holdingsRecordId": "e3ff6133-b9a2-4d4c-a1c9-dc1867d4df19",
    "location": {
      "name": "Annex",
      "libraryName": "Datalogisk Institut",
      "code": "KU/CC/DI/A"
    },
    "enumeration": "",
    "status": "Checked out",
    "callNumber": "TK5105.88815 . A58 2004 FT MEADE",
    "callNumberComponents": {
      "callNumber": "TK5105.88815 . A58 2004 FT MEADE"
    }
  },
  "requester": {
    "lastName": "morty",
    "firstName": "panic",
    "barcode": "456",
    "patronGroupId": "3684a786-6671-4268-8ed0-9db82ebca60b"
  },
  "fulfilmentPreference": "Hold Shelf",
  "pickupServicePointId": "c4c90014-c8c9-4ade-8f24-b5e313319f4b",
  "metadata": {
    "createdDate": "2021-09-06T15:37:56.188+00:00",
    "createdByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5",
    "updatedDate": "2021-09-06T15:37:56.188+00:00",
    "updatedByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5"
  },
  "position": 1,
  "loan": {
    "dueDate": "2021-09-06T16:36:56.029Z"
  },
  "pickupServicePoint": {
    "name": "Circ Desk 2",
    "code": "cd2",
    "discoveryDisplayName": "Circulation Desk -- Back Entrance",
    "description": null,
    "shelvingLagTime": null,
    "pickupLocation": true
  }
}


Proposed JSON structure for request from UI side

{
    "id": "df45dc97-32c9-458f-9b32-2c1ea8e73159",
    "requestLevel": "Item",
    "requestType": "Hold",
    "fulfilmentPreference": "Hold Shelf",
    "item": {
        "barcode": "90000"
    },
    "itemId": "100d10bf-2f06-4aa0-be15-0b95b2d9f9e3",
    "requester": {
        "barcode": "11111"
    },
    "requestDate": "2021-10-19T12:54:47Z",
    "requesterId": "503ea8a5-fdd0-4c7a-b38d-9bdf2368f869",
    "pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f",
    "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39"
}
  • No labels

2 Comments

  1. Brooks TravisWe're planning to start working on Requests data migration that is required for TLR feature. This doc outlines changes in the Request data structure, can you please review them?

    1. Alexander Kurash Stephanie Buck I'm not seeing the requestLevel attribute anywhere. This is what stores the "intended" level of the request (title vs. item). In the initial implementation, I believe the intent is for this not to change after creation of the request, but we have discussed allowing requests to be changed from title-level to item-level via the staff interface (and vice versa). It's also intended to be a filterable attribute in the request results UI.