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

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



    • Concorde - Sprint 89
    • 5
    • Concorde



      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


          Issue Links



                Igor_Gorchakov Igor Gorchakov
                magdaz Magda Zacharska
                Magda Zacharska Magda Zacharska
                0 Vote for this issue
                3 Start watching this issue



                  TestRail: Runs

                    TestRail: Cases