Den här listan är resultatet av ett acceptanstest mellan Diggs och Ineras applikationer som körs mot ett omfattande och identiskt data underlag. Acceptanstestet har fokuserat på att validera att identiska anrop har samma resultat, givet att ett antal avvikelser accepteras. Avvikelserna är dokumenterade i denna lista.

Utöver detta har även en manuell diff av JSON-strängarna gjorts för att verifiera att de är identiska och summera avvikelserna.

Om ni upptäcker avvikelser som inte är dokumenterade här, vänligen kontakta oss på info@digg.se

Generellt : Ordning på objekt och attribut är inte garanterade, utan varierar mellan systemen.

Övergripande struktur

Den övergripande strukturen för anrop till både adress och organisationer är lika. Det finns en skillnad mellan anrop som levererar ett resultat och anrop som förväntas leverera många resultat i avsnittet data som antingen är ett objekt eller en array av objekt, Digg och Inera gör likadant och följer JSON API specifikationen.

Alla API-anrop returnerar en JSON-sträng med följande övergripande struktur:

Digg SDK

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
  "meta": { (1)
    "api-version": "1.1",
    "version": "4.0.1 (8924990a)",
    "buildTimestamp": "2024-03-13T12:39:18.158831128Z",
    "request-id": "50d431f464b365958fbf694c03223c92"
  },
  "links": { (2)
    "self": "http://localhost:8090/api/addresses?page%5Bsize%5D=25&include=parent&page%5Bnumber%5D=2",
    "prev": "http://localhost:8090/api/addresses?page%5Bsize%5D=25&include=parent&page%5Bnumber%5D=1",
    "next": "http://localhost:8090/api/addresses?page%5Bsize%5D=25&include=parent&page%5Bnumber%5D=3",
    "last": "http://localhost:8090/api/addresses?page%5Bsize%5D=25&include=parent&page%5Bnumber%5D=488",
    "first": "http://localhost:8090/api/addresses?page%5Bsize%5D=25&include=parent&page%5Bnumber%5D=0"
  },
  "data": [ (3)
    {},
    {}
  ],
  "included": [ (4)
    {},
    {}
  ]
}
  1. JSON-API Meta information

  2. JSON-API Links objects

  3. JSON-API Primary Data

  4. JSON-API resource objects that are related to the primary data

Inera SDK

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
  "meta": { (1)
    "version": "AB-3.4.3 (build 1a60c5d6)",
    "buildTimestamp": "2023-10-25T10:17:36+0200"
  },
  "links": { (2)
    "next": "http://localhost:3082/api/addresses?page%5Bsize%5D=25&include=parent&page%5Bnumber%5D=3",
    "self": "http://localhost:3082/api/addresses?page%5Bsize%5D=25&include=parent&page%5Bnumber%5D=2"
  },
  "data": [ (3)
    {},
    {}

  ],
  "included": [ (4)
    {},
    {}
  ]
}
  1. JSON-API Meta information

  2. JSON-API Links objects

  3. JSON-API Primary Data

  4. JSON-API resource objects that are related to the primary data

Skillnader JSON-API Meta information

  • Digg SDK har en extra attribut "api-version" som beskriver vilken version av API:et som används.

  • DIGG SDK har en extra attribut "request-id" som unikt identifierar anropet och som används internt på Digg för att spåra anropet vid felsökning.

  • Digg SDK har extra länk objekt som med länkar till första och sista sidan av det paginerade resultat.

  • Digg SDK har extra länk objekt som med länkar till föregående sidan av det paginerade resultat.

JSON-API Primary Data - Address

Data objekten för addresser är identiska mellan Digg och Inera, med en avvikelse på koder där ett fält som finns i Inera saknas i Digg. Fältet är avsett för internt bruk i Ineras applikation, motsvarande funktion har annan lösning i Digg.

Båda implementationerna har ett relationships objekt, och det länkade objektet återfinns i included sektionen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
  "type": "addresses",
  "id": "c99afaca-e3ad-4584-bbd6-0ec7651052d5",
  "attributes": {
    "identifier": "sdk:x1id6j2y:0203:p0479lmr-hyattgroup.name",
    "name": "Bernier Inc",
    "unitName": "portal",
    "description": "Face to face executive task-force",
    "activatedAt": "2024-02-16T22:47:35+0000",
    "categories": [
      "ea",
      "repudiandae",
      "et",
      "veritatis"
    ],
    "codes": [
      {
        "text": "Socialtjänst och kommunal hälso- och sjukvård // Funktionshinderomsorg // Daglig verksamhet",
        "coding": {
          "system": "1.2.752.129.5.1.23",
          "code": "1.7.5.3",
          "displayText": "Socialtjänst och kommunal hälso- och sjukvård // Funktionshinderomsorg // Daglig verksamhet",
          "additionalInfo": "Ge en meningsfull sysselsättning utifrån personens specifika förutsättningar. Insatsen kan innehålla både aktiviteter med habilitering och mer produktionsinriktade uppgifter. Daglig verksamhet är inte en anställningsform och arbetet är inte avlönat."
        }
      }
    ],
    "municipalityCode": [],
    "regionCode": []
  },
  "relationships": {
    "parent": {
      "data": {
        "id": "37e239af-4018-4e12-a946-cc51e4023221",
        "type": "organizations"
      }
    }
  },
  "links": {
    "self": "http://localhost:8090/api/addresses/c99afaca-e3ad-4584-bbd6-0ec7651052d5"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{
  "type": "addresses",
  "id": "c99afaca-e3ad-4584-bbd6-0ec7651052d5",
  "attributes": {
    "identifier": "sdk:x1id6j2y:0203:p0479lmr-hyattgroup.name",
    "name": "Bernier Inc",
    "unitName": "portal",
    "description": "Face to face executive task-force",
    "activatedAt": "2024-02-16T23:47:35+0100",
    "categories": [
      "ea",
      "repudiandae",
      "et",
      "veritatis"
    ],
    "codes": [
      {
        "text": "Socialtjänst och kommunal hälso- och sjukvård // Funktionshinderomsorg // Daglig verksamhet",
        "coding": {
          "system": "1.2.752.129.5.1.23",
          "code": "1.7.5.3",
          "displayText": "Socialtjänst och kommunal hälso- och sjukvård // Funktionshinderomsorg // Daglig verksamhet",
          "additionalInfo": "Ge en meningsfull sysselsättning utifrån personens specifika förutsättningar. Insatsen kan innehålla både aktiviteter med habilitering och mer produktionsinriktade uppgifter. Daglig verksamhet är inte en anställningsform och arbetet är inte avlönat."
        },
        "verificationResult": "OK" (1)
      }
    ],
    "municipalityCode": [],
    "regionCode": []
  },
  "relationships": {
    "parent": {
      "data": {
        "id": "37e239af-4018-4e12-a946-cc51e4023221",
        "type": "organizations"
      }
    }
  },
  "links": {
    "self": "http://localhost:3082/api/addresses/c99afaca-e3ad-4584-bbd6-0ec7651052d5"
  }
}
  1. Fältet "verificationResult" saknas i Digg SDK, detta gäller för alla typer av koder (codes, regionCode & municipalityCode).

JSON-API Included resource object - Organization

Om parametern include=parent är satt på ett anrop till /api/address inkluderas även organisationen som adressen är kopplad till.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{
  "type": "organizations",
  "id": "37e239af-4018-4e12-a946-cc51e4023221",
  "attributes": {
    "createdAt": "2024-02-16T22:47:35+0000",
    "updatedAt": null,
    "name": "Lockman Group",
    "description": "Sit possimus voluptatum voluptate quibusdam. Officiis maxime officia commodi suscipit sed. Velit facere eaque molestias dolorem. Sequi placeat mollitia. Quaerat dolorem blanditiis nihil tenetur consequatur. Aliquam voluptatem culpa explicabo ipsum.",
    "alternateName": "support",
    "participantIdentifier": "0203:p0479lmr-hyattgroup.name",
    "affiliation": null, (1)
    "managementCode": {
      "text": "Kommun",
      "coding": {
        "system": "1.2.752.129.2.2.1.14",
        "code": "2",
        "displayText": "Kommun",
        "additionalInfo": "Kommun inklusive dess nämnder och kommunala bolag"
      }
    },
    "publicProvider": true,
    "organizationNumber": "246702-1002",
    "countryCode": "SE",
    "validCodeSystems": [
      {
        "system": "1.2.752.129.5.1.30",
        "name": "KV sökord kommunal adressbok",
        "version": "3.0"
      }
    ],
    "municipalityCode": [],
    "regionCode": [],
    "type": "O",
    "participantStatus": {
      "lastChecked": "1708123659.066",
      "result": "OK"
    }
  },
  "links": {
    "self": "http://localhost:8090/api/organizations/37e239af-4018-4e12-a946-cc51e4023221"
  }
}
  1. Fältet affiliation är nytt i Diggs implementation och används för att bygga upp funktionsadressen enligt standardmall.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{
  "type": "organizations",
  "id": "37e239af-4018-4e12-a946-cc51e4023221",
  "attributes": {
    "createdAt": "2024-02-16T23:47:35+0100",
    "updatedAt": "2024-02-16T23:47:35+0100",
    "name": "Lockman Group",
    "description": "Sit possimus voluptatum voluptate quibusdam. Officiis maxime officia commodi suscipit sed. Velit facere eaque molestias dolorem. Sequi placeat mollitia. Quaerat dolorem blanditiis nihil tenetur consequatur. Aliquam voluptatem culpa explicabo ipsum.",
    "alternateName": "support",
    "participantIdentifier": "0203:p0479lmr-hyattgroup.name",
    "organizationNumber": "246702-1002",
    "countryCode": "SE",
    "validCodeSystems": [
      {
        "system": "1.2.752.129.5.1.30",
        "name": "KV sökord kommunal adressbok",
        "version": "3.0"
      }
    ],
    "municipalityCode": [],
    "regionCode": [],
    "type": "O",
    "participantStatus": {
      "lastChecked": 1708123655.923000000,
      "result": "OK"
    },
    "managementCode": {
      "text": "Kommun",
      "coding": {
        "system": "1.2.752.129.2.2.1.14",
        "code": "2",
        "displayText": "Kommun",
        "additionalInfo": "Kommun inklusive dess nämnder och kommunala bolag"
      },
      "verificationResult": "OK" (1)
    },
    "publicProvider": true
  },
  "relationships": { (2)
    "codesystems": {
      "data": [
        {
          "id": "1.2.752.129.5.1.30",
          "type": "codesystems"
        }
      ]
    }
  }
}
  1. Fältet "verificationResult" saknas i Digg SDK, detta gäller för alla typer av koder (managementCode, regionCode & municipalityCode).

  2. Inera har en lista med relaterade Kodverk för att beskriva kopplingen till "validCodeSystems", dessa återfinns inte i en include sektion. Digg saknar denna lista över relationer.

JSON-API Primary Data - Organization

Data objekten för organisationer är identiska mellan Digg och Inera, med en avvikelse på koder där ett fält som finns i Inera saknas i Digg. Fältet är avsett för internt bruk i Ineras applikation, motsvarande funktion har annan lösning i Digg.

Båda implementationerna har ett relationships objekt, och det länkade objektet återfinns i included sektionen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
{
  "type": "organizations",
  "id": "24a57a37-fd0e-4694-99c5-7f7211840f9c",
  "attributes": {
    "createdAt": "2024-02-16T22:47:36+0000",
    "updatedAt": null,
    "name": "Abernathy and Sons",
    "description": "Pariatur qui labore. Voluptas explicabo est labore fuga quis voluptatem porro. Cum occaecati iure voluptatibus quisquam. Quos quae maxime provident modi debitis doloremque eum. Illo consequatur unde. Animi pariatur minus hic. Inventore aliquam alias ut quae accusamus accusamus. Illo quasi qui sed consequatur aut. Tempore minus et. Consequuntur hic omnis. Ipsam qui quis magni amet. Beatae quia quis quo est sapiente. Itaque architecto amet necessitatibus enim omnis et. Et magnam sed aut est aut quas. Eum voluptas et. Fuga ut laboriosam ut pariatur qui cupiditate consequuntur. Ut repellendus corporis dolores molestiae. Eveniet sapiente vel et et id. Ducimus laboriosam ipsa sed dolorem illum. Eos soluta earum in quidem magnam tempora sint. Ratione accusantium error. Ullam quibusdam omnis sunt aut consequatur ut. In eum assumenda optio odit facere voluptates. Illo sit dolorem. Est rerum illo accusamus consequatur. Tempore enim asperiores. Delectus praesentium voluptatem fugiat reprehenderit ut dolores corrupti. Sit occaecati nobis incidunt magni vitae illo. At nobis deleniti aspernatur sed asperiores ea necessitatibus.",
    "alternateName": "well-modulated",
    "participantIdentifier": "0203:ky8gq14p-brakusllc.io",
    "affiliation": "Zeus", (1)
    "managementCode": {
      "text": "Region",
      "coding": {
        "system": "1.2.752.129.2.2.1.14",
        "code": "1",
        "displayText": "Region",
        "additionalInfo": "Region inklusive dess nämnder och kommunala bolag"
      }
    },
    "publicProvider": true,
    "organizationNumber": "16 239403-7979",
    "countryCode": "SE",
    "validCodeSystems": [
      {
        "system": "1.2.752.129.5.1.30",
        "name": "KV sökord kommunal adressbok",
        "version": "3.0"
      }
    ],
    "municipalityCode": [
      {
        "text": "Haparanda",
        "coding": {
          "system": "1.2.752.129.2.2.1.17",
          "code": "2583",
          "displayText": "Haparanda",
          "additionalInfo": null
        }
      }
    ],
    "regionCode": [
      {
        "text": "Norrbottens län",
        "coding": {
          "system": "1.2.752.129.2.2.1.18",
          "code": "25",
          "displayText": "Norrbottens län",
          "additionalInfo": null
        }
      }
    ],
    "type": "UO",
    "participantStatus": {
      "lastChecked": "1708123659.069", (2)
      "result": "OK"
    }
  },
  "links": {
    "self": "http://localhost:8090/api/organizations/24a57a37-fd0e-4694-99c5-7f7211840f9c"
  }
}
  1. Fältet affiliation är nytt i Diggs implementation och används för att bygga upp funktionsadressen enligt standardmall.

  2. Fältet lastChecked har typen string i Digg och number i Inera.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
{
  "type": "organizations",
  "id": "24a57a37-fd0e-4694-99c5-7f7211840f9c",
  "attributes": {
    "createdAt": "2024-02-16T23:47:36+0100",
    "updatedAt": null,
    "name": "Abernathy and Sons",
    "description": "Pariatur qui labore. Voluptas explicabo est labore fuga quis voluptatem porro. Cum occaecati iure voluptatibus quisquam. Quos quae maxime provident modi debitis doloremque eum. Illo consequatur unde. Animi pariatur minus hic. Inventore aliquam alias ut quae accusamus accusamus. Illo quasi qui sed consequatur aut. Tempore minus et. Consequuntur hic omnis. Ipsam qui quis magni amet. Beatae quia quis quo est sapiente. Itaque architecto amet necessitatibus enim omnis et. Et magnam sed aut est aut quas. Eum voluptas et. Fuga ut laboriosam ut pariatur qui cupiditate consequuntur. Ut repellendus corporis dolores molestiae. Eveniet sapiente vel et et id. Ducimus laboriosam ipsa sed dolorem illum. Eos soluta earum in quidem magnam tempora sint. Ratione accusantium error. Ullam quibusdam omnis sunt aut consequatur ut. In eum assumenda optio odit facere voluptates. Illo sit dolorem. Est rerum illo accusamus consequatur. Tempore enim asperiores. Delectus praesentium voluptatem fugiat reprehenderit ut dolores corrupti. Sit occaecati nobis incidunt magni vitae illo. At nobis deleniti aspernatur sed asperiores ea necessitatibus.",
    "alternateName": "well-modulated",
    "participantIdentifier": "0203:ky8gq14p-brakusllc.io",
    "organizationNumber": "16 239403-7979",
    "countryCode": "SE",
    "validCodeSystems": [
      {
        "system": "1.2.752.129.5.1.30",
        "name": "KV sökord kommunal adressbok",
        "version": "3.0"
      }
    ],
    "municipalityCode": [
      {
        "text": "Haparanda",
        "coding": {
          "system": "1.2.752.129.2.2.1.17",
          "code": "2583",
          "displayText": "Haparanda",
          "additionalInfo": null
        },
        "verificationResult": "OK" (1)
      }
    ],
    "regionCode": [
      {
        "text": "Norrbottens län",
        "coding": {
          "system": "1.2.752.129.2.2.1.18",
          "code": "25",
          "displayText": "Norrbottens län",
          "additionalInfo": null
        },
        "verificationResult": "OK" (2)
      }
    ],
    "type": "UO",
    "participantStatus": {
      "lastChecked": 1708123656.099000000,
      "result": "OK"
    },
    "managementCode": {
      "text": "Region",
      "coding": {
        "system": "1.2.752.129.2.2.1.14",
        "code": "1",
        "displayText": "Region",
        "additionalInfo": "Region inklusive dess nämnder och kommunala bolag"
      },
      "verificationResult": "OK" (3)
    },
    "publicProvider": true
  },
  "relationships": { (4)
    "codesystems": {
      "data": [
        {
          "id": "1.2.752.129.5.1.30",
          "type": "codesystems"
        }
      ]
    }
  },
  "links": {
    "self": "http://localhost:3082/api/organizations/24a57a37-fd0e-4694-99c5-7f7211840f9c"
  }
}
  1. Fältet "verificationResult" saknas i Digg SDK, detta gäller för alla typer av koder (managementCode, regionCode & municipalityCode).

  2. Fältet "verificationResult" saknas i Digg SDK, detta gäller för alla typer av koder (managementCode, regionCode & municipalityCode).

  3. Fältet "verificationResult" saknas i Digg SDK, detta gäller för alla typer av koder (managementCode, regionCode & municipalityCode).

  4. Inera har en lista med relaterade Kodverk för att beskriva kopplingen till "validCodeSystems", dessa återfinns inte i en include sektion. Digg saknar denna lista över relationer.

JSON-API Included resource object - Organization

Om parametern include=parent är satt på ett anrop till /api/organization inkluderas även relaterad data organisationens huvudorganisation om organisationen är en underorganisation.

Om include=parent inkluderas för en huvudorganisation returnerar Inera ett 404 fel, medans Digg returnerar huvudorganisationen utan att inkludera ytterligare data.

Skillnaderna i data för include för underorganisationen stämmer överens med motsvarande include av organisation för adresser. Se avsnitt JSON-API Included resource object - Organization ovan.

JSON-API Error object

Diggs error object har två nya fält jämfört med Ineras:

  • "traceId" som unikt identifierar anropet och som används internt på Digg för att spåra anropet vid felsökning.

  • "errorCode" som beskriver vilken typ av fel som uppstått.

Digg

{
        "errors": [
                {
                        "title": "Illegal Argument",
                        "detail": "No enum constant",
                        "source": "OrganizationType",
                        "status": "400",
                        "errorCode": "200049",
                        "traceId": "2664b4ba2c0d9c49bb4f63a4bb629b09"
                }
        ]
}

Kodverk

Skillnader vid listning av ett kodverk:

  • Digg returnerar även ett links objekt med en "self" länk, Inera saknar helt links objektet.

Digg

        "links": {
                "self": "https://sdk-prod.digg.se/addressbook/api/codesystems/1.2.752.129.5.1.61"
        }

Skillnader vid listning av ett kodverks koder:

  • Digg returnerar enbart kodens id som id, Inera prefixar den med kodverkets id och "-".

Digg

    "id": "1195",
    "type": "codes"

Inera

    "id": "1.2.752.129.5.1.61-1195",
    "type": "codes"