Case File

Case File

Case File (Saksmappe) is folder type, which keeps journaled (ordered) set of records. This is the most commonly used folder type, since it is used to model continuous chronological process.

  • Entity name in the API : Saksmappe.
  • Being a core Noark5 model entity, Case File (Saksmappe) is created/modified using the Transaction :: POST /transaction operation.
  • Case File (Saksmappe) should be associated to a Series (Arkivdel)
  • Case File (Saksmappe) can be created without Case Party (Sakspart), multiple Case Party (Sakspart) entities instances can be linked to a case file
  • Only two types of records - Registry Entry (Journalpost) and Basic Record (Basisregistrering) can be created under a Case File (Saksmappe)

Very common approach is to add to the Case File (Saksmappe) an External ID (EksternId) which contains the quality/business system case identifier. This allows integrating parties to find case files in Documaster using their own case file IDs.


Diagram showing the relation of Case File (Saksmappe) to other core entities through its reference fields. The diagram depicts the most important set of fields, leaving some of the use cases out of it for simplicity.

entities-fields

Data Fields

Common Data Fields

Following the Noark5 specification requirements and the internal implementation details the following set of data fields are present for all entities :

Field Name Type Noark Metadata No. Required on Create Value Always Available Modifiable Description
id string unique entity identifier in the specific Documaster installation, used for referencing the entity in the API. The id for created entities is a numeric value.
Default : new value generated on creation
Sortable
version string contains the verions of the entity, used for optimistic locking
Default : sequence version number of the entity
uuid string M001 globally unique identification of the entity, an UUID value (sysemId)
Default : new value generated on creation
Indexed, Sortable
opprettetDato timestamp M600 date and time at which the entity was created (createdDate)
Default : current date time
Indexed, Sortable
opprettetAv string M601 name of the user that created the entity (createdBy)
Default : logged in user name
Sortable
opprettetAvBrukerIdent string M601 identifier of the user that created the entity (createdByIdent)
Default : logged in user identifier
Sortable

Saksmappe Specific Data Fields

Field Name Type Noark Metadata No. Required on Create Value Always Available Modifiable Description
avsluttetDato timestamp M602 date and time when the archive unit was finalized (finalizedDate). The value cannot be modified, supplied, unless the case file is closed (saksstatus = ‘A’).
Sortable
avsluttetAv string M603 name of the user who finalized the archive unit (finalizedBy)
Sortable
avsluttetAvBrukerIdent string M603 unique identifier of the user who finalized the archive unit (finalizedByIdent)
Sortable
prefiks string optional identifier of the system from which the case file originated, the value cannot be changed once set
Sortable
mappeIdent string M003 unambiguous identification of the case file within the fonds to which the case file belongs (fileId)
Default : year/sequenceNumber in archive, example 2022/109
Indexed, Sortable
mappetype string Code List : mappetype
Indexed
tittel string M020 title of the archive (title)
Indexed, Sortable
offentligTittel string M025 public title of the case file, words that should be screened have been removed from the content of the title (replaced with ******) (publicTitle)
Sortable
beskrivelse string M021 description of the case file (description)
dokumentmedium string M300 indication of whether the archive unit contains physical documents, electronic documents or a mixture of physical and electronic documents
Code List : dokumentmedium
Default : E - Elektronisk arkiv
Indexed
saksaar number M011 year the case file was created
Default : current year
Indexed, Sortable
sakssekvensnummer number M012 order in which the case file was created within the year (caseSequenseNumber)
Default : sequence number
Sortable
saksdato date M100 date the case is created (caseDate)
Default : current date
Sortable
administrativEnhet string M305 name of department, office or other administrative unit responsible for the case handling. (administrativeUnit)
Code List : administrativEnhet
Sortable
saksansvarlig string M306 name of the person who responsible for the case.Both this field and saksansvarligBrukerIdent are free text fields, which can be freely modified. (caseResponsible)
Default : currently logged in user
Sortable
saksansvarligBrukerIdent string M306 identifier of the person who responsible for the case. Both this field and saksansvarlig are free text fields, which can be freely modified. (caseResponsibleId)
Default : currently logged in user ID
Sortable
saksstatus string M052 status of the case file, ie how far the case handling has come. (caseFileStatus)
Code List : saksstatus
Default : B - Under behandling
Indexed
skjerming string M500 indication that the documents belonging to the case file are not publicly available in accordance with the Public Access to Information Act (offentlighetsloven) or for any other reason (accessRestriction)
Code List : skjerming
Indexed
virksomhetsspesifikkeMetadata object M711 overarching metadata element that can contain custom metadata. When metadata for an entity is updated, the whole of it is ovewritten. Examples for handling business specific metadata can be found in the usage section of the page. (businessSpecificMetadata)
Not Queryable

Reference Fields

Field Name Referenced Entity Type Cardinality Link Required on Create Modifiable Description
refArkivdel Arkivdel 1 reference to the Series (Arkivdel) to which the Case File (Saksmappe) belongs
Returned
refRegistrering AbstraktRegistrering 0 . . * reference to a list of Records (AbstraktRegistrering) which can be either Basic Record (BasisRegistrering) or Registry Entry (Journalpost)
refSakspart Sakspart 0 . . * reference to a list of Case Party (Sakspart) entities
refPrimaerKlasse Klasse 1 . . * reference to the primary Class (Klasse) associated with the Case File (Saksmappe)
Returned
refSekundaerKlasse Klasse 0 . . * reference to a list of secondary Classes (Klasse) associated with the Case File (Saksmappe)
refEksternId EksternId 0 . . * reference to a list of External ID (EksternId) entities, containing the case file identification in external systems
refNoekkelord Noekkelord 0 . . * reference to a list of Keywords (‘Noekkelord’) entities associated with the Case File (Saksmappe)
refMerknad Merknad 0 . . * reference to a list of Notes (‘Merknad’) entities associated with the Case File (Saksmappe)
refNasjonalIdentifikator NasjonalIdentifikator 0 . . * reference to a list of National Identifiers (‘NasjonalIdentifikator’) entities associated with the Case File (Saksmappe)
refKryssreferanseTilMappe AbstraktMappe 0 . . * reference to a list of Folders (AbstraktMappe) to which the current case file has cross-reference
refKryssreferanseFraMappe AbstraktMappe 0 . . * reference to a list of Folders (AbstraktMappe) from which the current case file is being cross-referenced
refKryssreferanseTilRegistrering AbstraktRegistrering 0 . . * reference to a list of Folders (AbstraktMappe) to which the current case file has cross-reference
refKryssreferanseFraRegistrering AbstraktRegistrering 0 . . * reference to a list of Folders (AbstraktMappe) from which the current case file is being cross-referenced
refPresedens Presedens 0 . . * reference to a Precedent (Presedens) associated to this case file

Case Party

Case Party (Sakspart) is an entity representing a person related to the case file.

  • Entity name in the API : Sakspart.
  • Being a core Noark5 model entity, Case Party (Sakspart) is created/modified using the Transaction :: POST /transaction operation.
  • Case File (Saksmappe) can have multiple Case Party (Sakspart), but they are owned by the Case File (Saksmappe) entity and cannot be linked to other case files.

Data Fields

Common Data Fields

Following the Noark5 specification requirements and the internal implementation details the following set of data fields are present for all entities :

Field Name Type Noark Metadata No. Required on Create Value Always Available Modifiable Description
id string unique entity identifier in the specific Documaster installation, used for referencing the entity in the API. The id for created entities is a numeric value.
Default : new value generated on creation
Sortable
version string contains the verions of the entity, used for optimistic locking
Default : sequence version number of the entity
uuid string M001 globally unique identification of the entity, an UUID value (sysemId)
Default : new value generated on creation
Indexed, Sortable
opprettetDato timestamp M600 date and time at which the entity was created (createdDate)
Default : current date time
Indexed, Sortable
opprettetAv string M601 name of the user that created the entity (createdBy)
Default : logged in user name
Sortable
opprettetAvBrukerIdent string M601 identifier of the user that created the entity (createdByIdent)
Default : logged in user identifier
Sortable

Sakspart Specific Data Fields

Field Name Type Noark Metadata No. Required on Create Value Always Available Modifiable Description
sakspartIdent string M010 unique ID for the case party (casePartyId)
Sortable
sakspartNavn string M302 name of the case party (casePartyName)
Sortable
sakspartRolle string M303 role of the case party in the case file
Sortable
foedselsnummer string personal national identifier for all Norwegian citizens containing the data of birth as the first 6 digits (nationalIdentifier)
Sortable
organisasjonsnummer string organization number (orgNumber)
Sortable
dnummer string personal number assigned to temporary residents of Norway
Sortable
postadresse string M406 mailing address of a sender/receiver or party (mailingAddress)
Sortable
postnummer string M407 postal code of a sender/receiver or party (postalCode)
Sortable
poststed string M408 city where a sender/receiver or party is located (city)
Sortable
land string M409 country if the mailing address is abroad (country)
Sortable
epostadresse string M410 email address of a sender/receiver or party (emailAddress)
Sortable
telefonnummer string M411 phone number of a sender/receiver or party (phone)
Sortable
kontaktperson string M412 contact person of a organization who is sender, receiver or part (contactPerson)
Sortable
virksomhetsspesifikkeMetadata object M711 overarching metadata element that can contain custom metadata. When metadata for an entity is updated, the whole of it is ovewritten. Examples for handling business specific metadata can be found in the usage section of the page. (businessSpecificMetadata)
Not Queryable

Reference Fields

Field Name Referenced Entity Type Cardinality Link Required on Create Modifiable Description
refMappe Saksmappe 1 reference to Case File (Saksmappe), a Case Party is owned by a single Case File

Working with Case File and Case Party

Creating Case File

Case Files (Saksmappe) are created using transaction API, where in a single transaction the newly created case file must be linked to a single Series (Arkivdel), through reference Saksmappe::refArkivdel, and to one primary Class (Klasse), through reference Saksmappe::refPrimaerKlasse, part of the Classification System (Klassifikasjonssystem) linked to the series. Case File (Saksmappe) can be linked to more than one Class (Klasse) as secondary class, using the reference SaksMappe::refSekundaerKlasse. Additionally the example below is adding an External ID (EksternId), which is an identifier of the case file in an external system. ExternalID (EksternId) is not required to create a case file, but very useful if external identifiers are available, since the value can be used to search on it.

  • transaction::save - new Case File (Saksmappe)
  • transaction::link - link new case file to existing Series (Arkivdel) with id 688
  • transaction::link - link new case file to existing Class (Klasse) with id 681 as primary, through refPrimaerKlasse
  • transaction::link - link new case file to existing Class (Klasse) with id 681 as secondary, through refSekundaerKlasse
  • transaction::link - link new case file to existing Class (Klasse) with id 681 as secondary, through refSekundaerKlasse
  • transaction::save - new ExternalID (EksternId) with external ID value of ISID:0000004573
  • transaction::link - link new externalID to newly created case file through refMappe reference field

As a result of the transaction new Case File (Saksmappe) is created with id 1131.

creating registry entry

      Request

POST https://<documaster-instance>.local.documaster.tech:8083/rms/api/public/noark5/v1/transaction HTTP/1.1
...
Authorization: Bearer {{accessTokenIntegrator}}
Content-Type: application/json
X-Documaster-Error-Response-Type: application/json

{
    "actions": [
        {
            "action": "save",
            "type": "Saksmappe",
            "id": "saksmappe-temp-id-1",
            "fields": {
                "tittel": "API Created Case File - 3",
                "beskrivelse": "Third API created Case File",
                "administrativEnhet": "AD1"
            }
        },
        {
            "action": "link",
            "type": "Saksmappe",
            "id": "saksmappe-temp-id-1",
            "ref": "refArkivdel",
            "linkToId": "688"
        },
        {
            "action": "link",
            "type": "Saksmappe",
            "id": "saksmappe-temp-id-1",
            "ref": "refPrimaerKlasse",
            "linkToId": "681"
        },
        {
            "action": "link",
            "type": "Saksmappe",
            "id": "saksmappe-temp-id-1",
            "ref": "refSekundaerKlasse",
            "linkToId": "1111"
        },
        {
            "action": "link",
            "type": "Saksmappe",
            "id": "saksmappe-temp-id-1",
            "ref": "refSekundaerKlasse",
            "linkToId": "1113"
        },
        {
            "action": "save",
            "type": "EksternId",
            "id": "eksternId-temp-id-1",
            "fields": {
                "eksterntSystem": "Integrating System",
                "eksternID": "ISID:0000004573"
            }
        },
        {
            "action": "link",
            "type": "EksternId",
            "id": "eksternId-temp-id-1",
            "ref": "refMappe",
            "linkToId": "saksmappe-temp-id-1"
        }
    ]
}

      Response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "saved": {
        "saksmappe-temp-id-1": {
            "type": "Saksmappe",
            "id": "1131",
            "version": "10",
            "fields": {
                "uuid": "e8716b6e-3455-4148-870f-6435aa46cf5a",
                "opprettetDato": "2021-12-07T12:05:56.134+0100",
                "opprettetAv": "External Integrator ACME",
                "opprettetAvBrukerIdent": "e6e6318e-fdcb-41cb-ae3a-1940f98ea153",
                "mappeIdent": "2021/9",
                "tittel": "API Created Case File - 3",
                "beskrivelse": "Third API created Case File",
                "dokumentmedium": "E",
                "saksaar": 2021,
                "sakssekvensnummer": 9,
                "saksdato": "2021-12-07T12:05:56.149+0100",
                "administrativEnhet": "AD1",
                "saksansvarlig": "External Integrator ACME",
                "saksansvarligBrukerIdent": "e6e6318e-fdcb-41cb-ae3a-1940f98ea153",
                "saksstatus": "B"
            },
            "links": {
                "refPrimaerKlasse": 681,
                "refArkivdel": 688
            }
        },
        "eksternId-temp-id-1": {
            "type": "EksternId",
            "id": "1132",
            "version": "2",
            "fields": {
                "uuid": "835e8ef5-7127-41dc-8a0c-09edcc0ea6c4",
                "opprettetDato": "2021-12-07T12:05:56.149+0100",
                "opprettetAv": "External Integrator ACME",
                "opprettetAvBrukerIdent": "e6e6318e-fdcb-41cb-ae3a-1940f98ea153",
                "eksterntSystem": "Integrating System",
                "eksternID": "ISID:0000004573"
            },
            "links": {
                "refMappe": 1131
            }
        }
    }
}

Creating Case Party and adding it to a Case File

Case Files (Saksmappe) can have multiple Case Party (Sakspart) entity objects linked to them. Case Party (Sakspart) represents a person related to the case file in a particular role.

  • transaction::save - new Case Party (Sakspart)
  • transaction::link - link new case party to existing Case File (Saksmappe) with id 1131 through refMappe reference field

As a result of the transaction new Case Party (Saks[art) is created with id 1136 and associated with the Case File (Saksmappe).

creating registry entry

      Request

POST https://<documaster-instance>.local.documaster.tech:8083/rms/api/public/noark5/v1/transaction HTTP/1.1
...
Authorization: Bearer {{accessTokenIntegrator}}
Content-Type: application/json
X-Documaster-Error-Response-Type: application/json

{
    "actions": [
        {
            "action": "save",
            "type": "Sakspart",
            "id": "sakspart-temp-id-1",
            "fields": {
                "sakspartNavn": "Kari Nordmann",
                "sakspartRolle": "Handler",
                "epostadresse": "kari.nordmann@dummy.no"
            }
        },
        {
            "action": "link",
            "type": "Sakspart",
            "id": "sakspart-temp-id-1",
            "ref": "refMappe",
            "linkToId": "1131"
        }
    ]
}

      Response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "saved": {
        "sakspart-temp-id-1": {
            "type": "Sakspart",
            "id": "1136",
            "version": "2",
            "fields": {
                "uuid": "37baa8e6-b993-4137-9a2a-791a5991f1d1",
                "opprettetDato": "2021-12-09T14:04:15.316+0100",
                "opprettetAv": "External Integrator ACME",
                "opprettetAvBrukerIdent": "e6e6318e-fdcb-41cb-ae3a-1940f98ea153",
                "sakspartNavn": "Kari Nordmann",
                "sakspartRolle": "Handler",
                "epostadresse": "kari.nordmann@dummy.no"
            },
            "links": {
                "refMappe": 1131
            }
        }
    }
}

Query a Case File by ExternalID

Retrieving a Case File (Saksmappe) that has a specific ExternalID (EksternId) is done using the refEksternId reference field of CaseFile (Saksmappe).

      Request

POST https://<documaster-instance>.local.documaster.tech:8083/rms/api/public/noark5/v1/query HTTP/1.1
...
Authorization: Bearer {{accessTokenIntegrator}}
Content-Type: application/json
X-Documaster-Error-Response-Type: application/json

{
  "type": "Saksmappe",
  "limit": 1,
  "query": "refEksternId.eksterntSystem = @externalSystemID && refEksternId.eksternID = @externalID",
  "parameters" : {
    "@externalSystemID": "Integrating System 1",
    "@externalID" : "ISID:0000004573"
  }
}

      Response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "hasMore": false,
    "results": [
        {
            "type": "Saksmappe",
            "id": "1131",
            "version": "10",
            "fields": {
                "uuid": "e8716b6e-3455-4148-870f-6435aa46cf5a",
                "opprettetDato": "2021-12-07T12:05:56.134+0100",
                "opprettetAv": "External Integrator ACME",
                "opprettetAvBrukerIdent": "e6e6318e-fdcb-41cb-ae3a-1940f98ea153",
                "mappeIdent": "2021/9",
                "tittel": "API Created Case File - 3",
                "beskrivelse": "Third API created Case File",
                "dokumentmedium": "E",
                "saksaar": 2021,
                "sakssekvensnummer": 9,
                "saksdato": "2021-12-07",
                "administrativEnhet": "AD1",
                "saksansvarlig": "External Integrator ACME",
                "saksansvarligBrukerIdent": "e6e6318e-fdcb-41cb-ae3a-1940f98ea153",
                "saksstatus": "B"
            },
            "links": {
                "refPrimaerKlasse": 681,
                "refArkivdel": 688
            }
        }
    ]
}

Query a Case File by 2 Secondary Classes

The query below is querying for a Case File (Saksmappe) linked to two distinct secondary classes (Klasse). The query uses joins to perform the filtering. Response is omitted since it is the same as the example from the previous example.

      Request

POST https://<documaster-instance>.local.documaster.tech:8083/rms/api/public/noark5/v1/query HTTP/1.1
...
Authorization: Bearer {{accessTokenIntegrator}}
Content-Type: application/json
X-Documaster-Error-Response-Type: application/json

{
  "type": "Saksmappe",
  "limit": 2,
  "query": "#secClass1.id = @class1 && #secClass2.id = @class2",
  "parameters" : {
    "@class1" : "1111",
    "@class2" : "1113"
  },
  "joins": {
    "#secClass1" : "refSekundaerKlasse",
    "#secClass2" : "refSekundaerKlasse"
  },
  "sortOrder" : [
    {
      "field" : "mappeIdent",
      "order" : "desc"
    }
  ]
}

Query Case Files by Created Date, Status and Primary Class

The query below is querying for a set of Case Files (Saksmappe) that are with particular status, created in a particular time frame and with a particular primary class (and classification system). Response is omitted since it is the same as the example from the previous example.

      Request

POST https://integrationtest.dev.documaster.tech:8083/rms/api/public/noark5/v1/query HTTP/1.1
...
Authorization: Bearer {{accessTokenIntegrator}}
Content-Type: application/json
X-Documaster-Error-Response-Type: application/json

{
  "type": "Saksmappe",
  "limit": 20,
  "query": "refPrimaerKlasse.refKlassifikasjonssystem.id = @classificationSystemID && refPrimaerKlasse.klasseIdent = @classID && saksstatus = @caseFileStatus && opprettetDato = [@startDate:@endDate]",
  "parameters" : {
    "@classificationSystemID" : "3056241",
    "@classID" : "4.5",
    "@caseFileStatus" : "B",
    "@startDate" : "2022-05-25T00:00:00",
    "@endDate" : "2022-05-26T00:00:00"
  },
  "sortOrder" : [
    {
      "field" : "mappeIdent",
      "order" : "desc"
    }
  ]
}