Uploaded image for project: 'mod-data-export'
  1. mod-data-export
  2. MDEXP-97

Generate MARC bib record - Identifiers - conditionally replacing keys with values

    XMLWordPrintable

    Details

    • Template:
    • Sprint:
      Concorde - Sprint 89
    • Story Points:
      5
    • Development Team:
      Concorde

      Description

      Purpose

      FOLIO inventory storage instance contains fields that are represented by keys and those will need to be replaced by their values when generating MARC bib record on the fly. In many cases, which field in MARC record will be populated depends on the value of the key. For identifiers, depending on its type the different MARC Bib record field will be populated. Each inventory instance has a list of identifiers associated with it and it is an array of identifier value and identifier type id.

      This user story covers:

      • LCCN - 010 $a (both identifiers blank)
      • ISBN - 020 $a (both identifiers blank)
      • ISSN - 022 $a (both identifiers blank)
      • System Control Number - 035 $a (both identifiers blank) (will include FOLIO's OCLC identifier as well)
      • GPO Item Number - 074 $a (both identifiers blank)

      For this user story we will need to get the identifier type based on its id, and then while creating the MARC bib record locate appropriate field and populate it with the value coming from inventory instance record. For example:

      "identifiers" : [ {
          "value" : "9781780272979 paperback",
          "identifierTypeId" : "59378436-9645-4add-b05f-6afc69bdc8d0"
        }, {
          "value" : "(OCoLC)899705090",
          "identifierTypeId" : "01ca9cda-7027-4d64-abed-9e3c4943daf2"
        } ]
      

      GET /identifier-types lists identifierTypeIds:

      • "01ca9cda-7027-4d64-abed-9e3c4943daf2" as OCLC
      • "59378436-9645-4add-b05f-6afc69bdc8d0" as ISBN

      As a result the generated MARC record will contain
      020 $a 9781780272979 paperback
      035 $a (OCoLC)899705090

      For the details of the mapping refer to Recommended MARC mapping spreadsheet: https://docs.google.com/spreadsheets/d/11lGBiPoetHuC3u-onVVLN4Mj5KtVHqJaQe4RqCxgGzo/edit#gid=1166940623 Instance to MARC tab.

      The output should be consistent with parsedRecord.json

      Acceptance criteria

      1. The generated record is short-lived and generated each time it is requested
      2. The following identifiers are being correctly mapped according to the mapping document:

      • System Control Number (035 $a - both indicators blank)
      • LCCN (010 $a - both indicators blank)
      • ISBN
      • OCLC (the same mapping as for System Control Number)
      • ISSN
      • GPO

      3. The record is saved in .mrc file and contains correctly populated data
      4. Unit tests are written
      5. API tests are written

      Note: For the MARC record indicator value check: https://docs.google.com/spreadsheets/d/11lGBiPoetHuC3u-onVVLN4Mj5KtVHqJaQe4RqCxgGzo/edit#gid=1410366280 "Concorde - Instance to MARC 2019" tab

        TestRail: Results

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                Igor_Gorchakov Igor Gorchakov
                Reporter:
                magdaz Magda Zacharska
                Tester Assignee:
                Magda Zacharska Magda Zacharska
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved:

                    TestRail: Runs

                      TestRail: Cases