Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Beskrivning

En tjänst som hanterar ärenden mot ByggR och Ecos2 (fas 1) samt läser historik från E-arkiv (fas 2).

Behov

  • Idag när en medborgare använder en e-tjänst för bygglovsärenden eller miljökontorärenden så skickas en PDF-fil innehållandes all information från E-tjänsten till handläggarna som manuellt får mata in dessa uppgifter i ByggR eller Ecos2. Detta tar mycket tid från handläggarna. Tid som kan användas till mer värdeskapande aktiviteter. Detta är dessutom ett repetitivt och inte särskilt utvecklande arbete för individen.

    Denna hantering vill vi automatisera genom att E-tjänsten istället anropar vårt CaseManagement-API som skapar ett ärende maskinellt i ByggR eller Ecos2.

  • Ett ärende som skapas i e-tjänster består alltid av två olika ärenden. Ett i Open ePlatform(OeP) och ett annat i antingen ByggR eller Ecos2. Ärendet i OeP har varit kundens perspektiv på ärendet. Detta ärende har inte uppdaterats i takt med att ärendet handläggs i antingen ByggR eller Ecos2. Idag kan inte intressenterna i ett ärende (t.ex. den sökande) hitta information om sitt ärende på webben. Idag behöver intressenten kontakta en handläggare för information om sitt ärende. Detta är krångligt, ineffektivt och inte särskilt användarvänligt för våra kunder, samtidigt som det är en belastning för handläggarna.

    Detta vill vi lösa genom att CaseManagement föder OeP med information om de underliggande ärendena. Då kommer intressenterna kunna komma åt sina ärenden på webben.

Livscykelstatus

Under utveckling

Lösningsbeskrivning

Gliffy
imageAttachmentIdatt88113155
macroId9964760a-a025-4804-a896-4e790a78cba0
baseUrlhttps://sundsvall.atlassian.net/wiki
namecaseMan-API
diagramAttachmentIdatt88080400
containerId47317017
timestamp1644496395387

CaseManagement(CM) kommer lagra en koppling mellan ärendet i OeP och underliggande handläggningssystem. Denna lagring kommer ske i samband med att ärendet skapas från e-tjänsten. Detta kommer möjliggöra att CM kommer kunna hämta upp ärendet från underliggande system när OeP ber om information.

Anropsflöden

POST /cases

“Underliggande system” syftar på antingen ByggR eller Ecos2 för närvarande. Anropet “Skapa ärende” kan bestå av ett flertal anrop för att skapa ett komplett ärende.

Datamodeller

Cases

Denna datamodell är en visuell överblick över Java-klasserna. Detta motsvarar ett komplett ärende. Detta är inget som lagras idag.

Gliffy
imageAttachmentIdatt357138446
macroIdb4c422c2-aedf-49d8-8da1-e7ce845bf7cf
baseUrlhttps://sundsvall.atlassian.net/wiki
nameCaseManagement datamodell
diagramAttachmentIdatt357531655
containerId47317017
timestamp1619174516603

CaseMapping

Detta är databastabellen vi använder för att lagra kopplingen mellan OeP-ärendet och ärendet i det underliggande systemet.

  • caseId - ID på ärendet i det underliggande systemet

  • externalCaseId - ID på OeP-ärendet

  • system - Det underliggande systemet (BYGGR, ECOS)

  • timestamp - tidsstämpel på när raden senast ändrades

Hantering av personuppgifter

Vi tar in ett personId och hämtar sedan det tillhörande personnumret från CitizenMapping för att kunna anropa Ecos2 och ByggR med personnummer. Vi kan inte påverka det faktum att dessa system kräver detta som indata. Ecos2 och ByggR ligger på det interna nätet på Sundsvalls kommun.

API specifikation

Swagger ui
---
openapi: 3.0.2
info:
  title: CaseManagement
  description: A service that manage cases against ByggR (building permit cases) and
    Ecos2 (environmental office cases).
  contact:
    name: Sundsvalls kommun - Team Dynasty
    email: teamdynasty@sundsvall.se
  version: '"3.2'
servers:
  - url: https://api-test.sundsvall.se/casemanagement/3.2
"
paths:
  /api-docs:
    get:
      tags:
 
      - API
      summary: OpenAPI-definition
      parameters: [ ]
      responses:
        '"200'":
          description: ok
      x-auth-type: None
      x-throttling-tier: null
  /cases:
    post:
      tags:
 
      - Cases
      description: Creates a case in ByggR or Ecos2 based on caseType. Also persists
        a connection between externalCaseId and the created case.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Case'
      responses:
        '200'"400":
          description: Bad OKrequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseResourceResponseInformation'
        '400'"500":
          description: BadInternal Server requestError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'
        '500'"200":
          description: Internal Server ErrorOK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InformationCaseResourceResponse'
  /cases/case-mappings:
    x-throttling-tier: null
  /cases/case-mappings:get:
      get:
      tags:
        - CaseMappings
      description: Returns the connection between externalCaseId and the case in the
        underlying system.
      parameters:
 
      - name: external-case-id
 
        in: query
          required: false
          style: form
     
    explode: true           schema:
            type: string
      responses:
        '"200'":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseMapping'
        '"400'":
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'
        '"404'":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'
        '"500'":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'

    
 x-throttling-tier: null
  /cases/{external-case-id}/attachments:
    post:
      tags:
        - Attachments
      description: Add attachments to existing case.
      parameters:
      -  - name: external-case-id
 
        in: path
 
        required: true
     
    style: simple           explode: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Attachment'
      responses:
        '"204'":
          description: No content - Successful request.
        '"400'":
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'
        '"404'":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'
        '"500'":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'
        '"501'":
          description: Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'

      x-throttling-tier: null
  /cases/{external-case-id}/status:
    get:
      tags:
        - Status
      description: Returns the latest status for the case in the underlying system
        connected to the specified externalCaseId.
      parameters:

       - name: external-case-id
          in: path
          required: true
        schema:
 style: simple        type: string
   explode: false  responses:
        schema"200":
          description: OK
type:   string       responsescontent:
        '200':
          description: OK           content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseStatus'
        '"400'":
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'
        '"404'":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'
        '"500'":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'

      x-throttling-tier: null
  /organization/{organizationNumber}/cases/status:
    get:
      tags:
 
      - Status
      description: Returns the latest status for each of the cases where the specified
        organization has the role "applicant".
      parameters:
 
      - name: organizationNumber
 
        in: path

         required: true
        schema:
  style:   simple     description: Organisationsnummer bestående av 10 eller explode:12 falsesiffror.
          schematype: string
           typeexample: string19901010-1234
      responses:
     description: Organisationsnummer bestående av 10 eller 12 siffror.
            example: 19901010-1234
      responses:
        '200' "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CaseStatus'
        '"400'":
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'
        '"404'":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'
        '"500'":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Information'

      x-throttling-tier:
null
security:
  - ApiKeyAuth: [ ]
components:
  securitySchemes:
    ApiKeyAuth: 
      type: apiKey
      in: header   
      name: apikey
  schemas:
    Address:
      required:
        - addressCategories
      type: object
      properties:
        addressCategories:
          minItemsdescription: 1En adress kan ha en eller flera adresskategorier. Det kan exempelvis
type: array           description:vara Ensamma adress kansom haska enanvändas ellerför flerapost adresskategorier. Det kan exempelvis vara samma adress som ska användas för post och fakturor.och fakturor.
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/AddressCategory'
        street:
          type: string
          example: Testvägen
        houseNumber:
          type: string
          example: '"18'"
        postalCode:
          type: string
          example: 123 45
        city:
          type: string
          example: Sundsvall
        country:
          type: string
          example: Sverige
        careOf:
          typedescription: stringc/o
          descriptiontype: c/ostring
          example: Test Testorsson
        attention:
          type: string
          example: Test Testorsson
        propertyDesignation:
          typedescription: stringFastighetsbeteckning
          descriptiontype: Fastighetsbeteckningstring
          example: SUNDSVALL LJUSTA 7:2
        appartmentNumber:
          type: string
          example: LGH 1001
        location:
          $ref: '#/components/schemas/Coordinates'
        isZoningPlanArea:
          type: boolean
          description: Ligger inom detaljplanerat område
          invoiceMarkingtype: boolean
         typeinvoiceMarking: string
          description: Märkning av faktura (anges endast i samband med addressCategory
            INVOICE_ADDRESS)

   AddressCategory:       type: string
    AddressCategory:
      description: Kategorisering av adresser. <li>POSTAL_ADDRESS(Postadress)</li><li>INVOICE_ADDRESS(Fakturaadress)</li><li>VISITING_ADDRESS(Besöksadress)</li>
      enum:
 
      - INVOICE_ADDRESS
 
      - POSTAL_ADDRESS
 
      - VISITING_ADDRESS
      type: string
    Attachment:
      required:
        - category
 
      - extension
 name
      - file
 extension
      - namefile
      type: object
      properties:
        category:
          allOf:

           - $ref: '#/components/schemas/AttachmentCategory'
            - nullable: false
        name:
          pattern: \S
          type: string
          nullableexample: falseNamn  dokumentet
        example: Namn nullable: dokumentetfalse
        note:
          type: string
          example: En anteckning.
        extension:
          pattern: \S
          type: string
          nullableexample: false.pdf
          examplenullable: .pdffalse
        mimeType:
          type: string
          example: application/pdf
        file:
          patternformat: \Sbyte
          typedescription: stringBase64-encoded file (plain text)
       description: Base64-encoded file (plain text)pattern: \S
          formattype: bytestring
          nullable: falseexample: dGVzdA==
          AttachmentCategorynullable: false
     typeAttachmentCategory: string
      description: Kategorisering av bilagor.
      enum:
 
      - ADRESS

       - ANKVU
        - ANM

       - ANMALAN_LIVSMEDELSANLAGGNING
        - ANMÄ
 
      - ANNO
 
      - ANS
 
      - ANSF
 
      - ANSFÖ
        - ANSM
 
      - ANSR
        - ANSS
        - ANSSL
        - ANSUP
 
      - ANSUPA
 
      - ANV
 
      - ARBI
 
      - ARIT
 
      - ARK
 
      - AVPLAN

       - BANK
        - BEGLST
 
      - BEGSTART
 
      - BEHA

       - BEK
        - BEKMOTANS

       - BEMÖ
        - BERBSA
        - BESKA
 
      - BESLUT
 
      - BIL
 
      - BLST
        - BRAB
 
      - BRAD
        - BRAU
 
      - BROS
 
      - BRS
 
      - BULL
 
      - DEB

       - DEL
        - DELK

       - DELSLU
        - DELSTA
 
      - DETALJ
 
      - DHBHUR
 
      - DOM
 
      - DPH
 
      - ELD
 
      - ENEDEK
 
      - ENER
 
      - EPOS
        - EXRIT
 
      - FAKTU
 
      - FAKTUS
 
      - FAP
        - FAPL
 
      - FAS
        - FAS2
        - FASSIT
        - FASSIT2
 
      - FAST
 
      - FOTO

       - FOTOMON
        - FPSS

       - FS
        - FS2
 
      - FSF
 
      - FUM
 
      - FÄRG
 
      - FÖLJ
        - FÖLJREVRIT
 
      - FÖRB
        - FÖRG2
        - FÖRGARBO
        - FÖRK
 
      - FÖRR
 
      - GBLAD
 
      - GEO
 
      - GODFÄ
 
      - GRA
 
      - GRAM

       - GRAN
        - GRUNDP
 
      - GRUNDR
 
      - HBB

       - HISSINT
        - HUR

       - INFOSS
        - INTFAK
        - INTSLUT
 
      - INTY
 
      - KA
 
      - KART
        - KLA
 
      - KM
        - KOMP
 
      - KOND
 
      - KONR
 
      - KONT
 
      - KP

       - KPLAN
        - KPR

       - KPV
        - KR
 
      - KVAL
 
      - LUFT
 
      - LUTE
 
      - MAIL
 
      - MAPL
 
      - MAST
 
      - MATINV
 
      - MEDDEL
        - MINN
 
      - MIRP
 
      - MOTBKR
 
      - MUR
        - MÅTT
 
      - NYKA
        - OMPLÄ
        - OVK
        - PERSPEKTIV
 
      - PFS2
 
      - PFSI2

       - PFSS2
        - PLA

       - PLA2
        - PLAN
 
      - PLANK
 
      - PLASIT
 
      - PLFA
 
      - PLFA2
        - PLFASE
 
      - PLFASESI
        - PLFASI
        - PLSE
        - PLSE2
 
      - PM
 
      - PMINN
 
      - POIT
 
      - PRES
 
      - PRESENTA
 
      - PROARB

       - PROSS
        - PROT
 
      - PROTAU
 
      - PROTKS

       - PROTPLU
        - PROTS

       - PROTSBN
        - PSI2
        - PSS
 
      - PSS2
 
      - PÅMINNTB
 
      - RAP
        - RAPP
 
      - REL
        - REMISS
 
      - REMS
 
      - REMUA
 
      - REVRIT
 
      - RIT

       - RITNING
        - RIVA

       - RIVP
        - RUE
 
      - RÄTT
 
      - SAK
 
      - SAKNAS
 
      - SAKUT
 
      - SBES
 
      - SBN
 
      - SCB
 
      - SEK
        - SEK2
 
      - SEKSIT
 
      - SEKT
 
      - SESI2
        - SIN
 
      - SITU
        - SKP
        - SKR
        - SKY
 
      - SKYL
 
      - SLUT

       - STAB
        - STIM

       - STOMR
        - SVAR
 
      - SVAR2år
 
      - SÅF
 
      - TAPL
 
      - TEBY
        - TEKN
 
      - TEKRAP
        - TEVS
        - TILL
        - TILLVR
 
      - TJ
 
      - TJÄ
 
      - TOMTPLBE
 
      - TSR
 
      - UBGARBO
 
      - UKA

       - UKON
        - UKP
 
      - UKR
 
      - UND

       - UNDER
        - UNDUT

       - UPLA
        - UPPM
        - URÖR
 
      - UTBEU
 
      - UTSK
 
      - UTSKP
        - UTSKS
 
      - UVEN
        - VAH
 
      - VENT
 
      - VS
      - VVSH
- VVSH     - ÄRB
  - ÄRB   - ÅTG
    - ÅTG - ÖVER
      -type: ÖVERstring
    Case:
      required:
 
      - attachments
 externalCaseId
      - caseType
 
      - externalCaseIdstakeholders
        - stakeholdersattachments
      type: object
      properties:
        id:
          typeformat: integerint64
          formattype: int64integer
          readOnly: true
        externalCaseId:
          description: ÄrendeId från Open-E
          pattern: \S
          type: string
          descriptionexample: ÄrendeId"1"
från Open-E           nullable: false
          example: '1'
        caseType:
          allOf:
 
          - $ref: '#/components/schemas/CaseType'
 
          - nullable: false
        description:
          typedescription: stringBeskriv kort vad du vill bygga
     description: Beskriv kort vad du villtype: byggastring
          example: En fritextbeskrivning av case.
        caseTitleAddition:
          typedescription: "Additions stringto the case title. Right now only applicable to\
  description: 'Additions to the case title. Right now only applicable to\ cases of CaseType: NYBYGGNAD_ANSOKAN_OM_BYGGLOV.'"
          type: string
          example: "Eldstad/rökkanal, Skylt"
        stakeholders:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Stakeholder'
        attachments:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Attachment'
      oneOf:
        - $ref: '#/components/schemas/PlanningPermissionCase'
 
      - $ref: '#/components/schemas/EnvironmentalCase'
    CaseMapping:
      required:
 
      - system
      type: object
      properties:
        externalCaseId:
          type: string
        caseId:
          type: string
        system:
          allOf:

           - $ref: '#/components/schemas/SystemType'
            - nullable: false
        timestamp:
          typeformat: stringdate-time
          formattype: date-timestring
          readOnly: true
    CaseResourceResponse:
      type: object
      properties:
        caseId:
          type: string
    CaseStatus:
      type: object
      properties:
        system:
          $ref: '#/components/schemas/SystemType'
        externalCaseId:
          type: string
        caseId:
          type: string
        status:
          typedescription: stringStatus  ärendet
        description: Status type: ärendetstring
          example: Pågående
        timestamp:
          typeformat: stringdate-time
          formattype: date-timestring
    CaseType:
  
   type: string       description: Sätts till den enum som hör ihop med den anropande e-tjänsten.
      exampleenum:
NYBYGGNAD_ANSOKAN_OM_BYGGLOV       enum:
 - ANMALAN_ATTEFALL
      - LIVSMEDELSVERKSAMHET_ANMALAN_OM_ATTEFALL
REGISTRERING
       - LIVSMEDELSVERKSAMHETNYBYGGNAD_ANMALANANSOKAN_OM_REGISTRERING
 BYGGLOV
      type: string
      -example: NYBYGGNAD_ANSOKAN_OM_BYGGLOV
    Coordinates:
      type: object
      properties:
        latitude:
          typeformat: numberdouble
          description: Decimal Degrees (DD)
          formattype: doublenumber
          example: 62.390205
        longitude:
          typeformat: numberdouble
          description: Decimal Degrees (DD)
          formattype: doublenumber
          example: 17.306616
    EnvironmentalCase:
      requireddescription: Miljökontorärende (Ecos2)
      -required:
attachments      - startDate
 - caseType    - externalCaseId
   -  externalCaseId - caseType
      - facilities
 stakeholders
      - stakeholdersattachments
        - startDatefacilities
      type: object
      properties:
        startDate:
          typeformat: stringdate
          description: Startdatum på verksamheten.
          type: string
          formatexample: date2022-01-01
          nullable: false
        endDate:
          typeformat: stringdate
          description: Slutdatum på verksamheten vid det fall den är tidsbegränsad.
          format: datetype: string
          example: 2022-06-01
        id:
          typeformat: integerint64
          formattype: int64integer
          readOnly: true
        externalCaseId:
          patterndescription: \S ÄrendeId från Open-E
          typepattern: string\S
          descriptiontype: ÄrendeId från Open-Estring
           nullableexample: false"1"
          examplenullable: '1'false
        caseType:
          allOf:
 
          - $ref: '#/components/schemas/CaseType'
            - nullable: false
        description:
          typedescription: stringBeskriv kort vad du vill bygga
     description: Beskriv kort vad du villtype: byggastring
          example: En fritextbeskrivning av case.
        caseTitleAddition:
          typedescription: "Additions stringto the case title. Right now only applicable to\
  description: 'Additions to the case title. Right now only applicable to\ cases of CaseType: NYBYGGNAD_ANSOKAN_OM_BYGGLOV.'"
          type: string
          example: "Eldstad/rökkanal, Skylt"
        stakeholders:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Stakeholder'
        attachments:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Attachment'
        facilities:
          maxItems: 1
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/EnvironmentalFacility'
      description: Miljökontorärende (Ecos2)
    EnvironmentalFacility:
      required:
 
      - facilityCollectionName
      type: object
      properties:
        description:
          type: string
          example: En fritextbeskrivning av facility.
        address:
          $ref: '#/components/schemas/Address'
        facilityCollectionName:
          patterndescription: \SSkyltnamn
          typepattern: string\S
          descriptiontype: Skyltnamnstring
          nullableexample: Sundsvalls falsetestfabrik
          examplenullable: Sundsvallsfalse
testfabrik     Facility:
      type: object
      properties:
        description:
          type: string
          example: En fritextbeskrivning av facility.
        address:
          $ref: '#/components/schemas/Address'
      oneOf:
 
      - $ref: '#/components/schemas/PlanningPermissionFacility'
 
      - $ref: '#/components/schemas/EnvironmentalFacility'
    FacilityType:
      type: string
      description: "Typ av byggnad.<br><br>Typer:<li>ONE_FAMILY_HOUSE(enbostadshus)</li><li>APARTMENT_BLOCK(flerbostadshus)</li><li>WEEKEND_COTTAGE(fritidshus)</li><li>OFFICE_BUILDING(kontorsbyggnad)</li><li>INDUSTRIAL_BUILDING(industribyggnad)</li><li>GARAGE(garage)</li><li>CARPORT(carport)</li><li>STOREHOUSE(förrådfö\
        rråd)</li><li>GREENHOUSE(växthus)</li><li>GUEST_HOUSE(gäststuga)</li><li>WAREHOUSE(lagerbyggnad)</li><li>WORKSHOP_BUILDING(Verkstadsbyggnad)</li><li>RESTAURANT(Restaurang)</li><li>SCHOOL(Skola)</li><li>PRESCHOOL(FörskolaFö\
        rskola)</li><li>PARKING(Parkering, Cykelparkering)</li><li>DEPOT(Upplag)</li><li>MARINA(SmåbåtshamnSmå\
        båtshamn)</li><li>WALL(Mur)</li><li>PALING(Plank)</li><li>RECYCLING_STATION(ÅtervinningsstationÅ\
        tervinningsstation)</li><li>OTHER(övrigt)</li>"
      enum:
 
      - ANCILLARY_BUILDING
        - ANCILLARY_HOUSING_BUILDING
 
      - APARTMENT_BLOCK
 
      - CARPORT
 
      - DEPOT
 
      - DORMER

       - EXTENSION
        - FURNISHING_OF_ADDITIONAL_DWELLING

       - GARAGE
        - GREENHOUSE
 
      - GUEST_HOUSE
 
      - INDUSTRIAL_BUILDING
 
      - MARINA
 
      - OFFICE_BUILDING
 
      - ONE_FAMILY_HOUSE
 
      - OTHER
 
      - PALING
 
      - PARKING
        - PRESCHOOL
 
      - RECYCLING_STATION
 
      - RESTAURANT
 
      - SCHOOL
        - STOREHOUSE
 
      - WALL
        - WAREHOUSE
        - WEEKEND_COTTAGE
        - WORKSHOP_BUILDING
      type: string
    Information:
      type: object
      properties:
        type:
          type: string
        status:
          typeformat: integerint32
          formattype: int32integer
        title:
          type: string
        detail:
          type: string
        instance:
          type: string
    Organization:
      required:

       - organizationName
type
       - organizationNumberroles
      -  - roles
organizationName
       - typeorganizationNumber
      type: object
      properties:
        type:
          allOf:
 
          - $ref: '#/components/schemas/StakeholderType'
            - nullable: false
        roles:
 
        type: array           description: En intressent kan ha en eller flera roller.
          nullabletype: falsearray
          items:
            $ref: '#/components/schemas/StakeholderRole'
          nullable: false
        organizationName:
          pattern: \S
          type: string
          nullableexample: Sundsvalls falsetestfabrik
          examplenullable: Sundsvallsfalse
testfabrik         organizationNumber:
          patterndescription: \SOrganisationsnummer bestående av 10 eller 12 siffror.
    type: string     pattern: \S
    description: Organisationsnummer bestående av 10 eller 12type: siffror.string
          nullableexample: false19901010-1234
          examplenullable: 19901010-1234false
        phoneNumber:
          type: string
          example: '"060121212'"
        emailAddress:
          type: string
          example: test.testorsson@test.se
        cellphoneNumber:
          type: string
          example: '"0701231212'"
        addresses:
          type:
array           description: En intressent kan ha en eller flera adresser. T.ex. en adress
            av typen POSTAL_ADDRESS och en annan av typen INVOICE_ADDRESS. typen INVOICE_ADDRESS.
          type: array
          items:
            $ref: '#/components/schemas/Address'
        authorizedSignatory:
          typedescription: stringFirmatecknare
          descriptiontype: Firmatecknarestring
          example: Test Testorsson
    Person:
      required:
        - firstName
 type
      - lastNameroles
        - rolesfirstName
        - typelastName
      type: object
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/StakeholderType'
 
          - nullable: false
        roles:
          type: array
          description: En intressent kan ha en eller flera roller.
          nullabletype: falsearray
          items:
            $ref: '#/components/schemas/StakeholderRole'
          nullable: false
        firstName:
          pattern: \S
          type: string
          nullableexample: falseTest
          examplenullable: Testfalse
        lastName:
          pattern: \S
          type: string
          nullableexample: falseTestorsson
          examplenullable: Testorssonfalse
        personId:
          type: string
          example: 3ed5bc30-6308-4fd5-a5a7-78d7f96f4438
        phoneNumber:
          type: string
          example: '"060121212'"
        emailAddress:
          type: string
          example: test.testorsson@test.se
        cellphoneNumber:
          type: string
          example: '"0701231212'"
        addresses:
          type: array
          description: En intressent kan ha en eller flera adresser. T.ex. en adress. en adress
            av typen POSTAL_ADDRESS och en annan av typen INVOICE_ADDRESS.
          type: array
          items:
            $ref: '#/components/schemas/Address'
        personalNumber:
          type: string
          readOnly: true
    PlanningPermissionCase:
      requireddescription: Bygglovsärende (ByggR)
      -required:
attachments      - externalCaseId
 - caseType    - caseType
   - externalCaseId  - stakeholders
      - facilitiesattachments
        - stakeholdersfacilities
      type: object
      properties:
        id:
          typeformat: integerint64
          formattype: int64integer
          readOnly: true
        externalCaseId:
          patterndescription: \S ÄrendeId från Open-E
          typepattern: string\S
          descriptiontype: ÄrendeIdstring
från Open-E           nullableexample: false"1"
          examplenullable: '1'false
        caseType:
          allOf:
            - $ref: '#/components/schemas/CaseType'
 
          - nullable: false
        description:
          type: string
          description: Beskriv kort vad du vill bygga
          exampletype: string
En fritextbeskrivning av case.       example: En caseTitleAddition:fritextbeskrivning av case.
        typecaseTitleAddition: string
          description: '"Additions to the case title. Right now only applicable to\
            \ cases of CaseType: NYBYGGNAD_ANSOKAN_OM_BYGGLOV.'"
          type: string
          example: "Eldstad/rökkanal, Skylt"
        stakeholders:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Stakeholder'
        attachments:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Attachment'
        facilities:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/PlanningPermissionFacility'
        diaryNumber:
          typedescription: stringDiarienummer
          descriptiontype: Diarienummer
      description: Bygglovsärende (ByggR)string
    PlanningPermissionFacility:
      required:
 
      - facilityType
      type: object
      properties:
        facilityType:
          allOf:
 
          - $ref: '#/components/schemas/FacilityType'
 
          - nullable: false
        description:
          type: string
          example: En fritextbeskrivning av facility.
        address:
          $ref: '#/components/schemas/Address'
        mainFacility:
          type: boolean
    Stakeholder:
      required:
        - roles
 type
      - typeroles
      type: object
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/StakeholderType'
 
          - nullable: false
        roles:
          type: array
          description: En intressent kan ha en eller flera roller.
          nullabletype: falsearray
          items:
            $ref: '#/components/schemas/StakeholderRole'StakeholderRole'
          nullable: false
        phoneNumber:
          type: string
          example: '"060121212'"
        emailAddress:
          type: string
          example: test.testorsson@test.se
        cellphoneNumber:
          type: string
          example: '"0701231212'"
        addresses:

         type: array
          description: En intressent kan ha en eller flera adresser. T.ex. en adress
            av typen POSTAL_ADDRESS och en annan av typen INVOICE_ADDRESS.
          type: array
          items:
            $ref: '#/components/schemas/Address'
      oneOf:
        - $ref: '#/components/schemas/Person'

       - $ref: '#/components/schemas/Organization'
    StakeholderRole:
      type: string
      description: <h3>Generella-roller:</h3><li>CONTACT_PERSON(Kontaktperson)</li><br><br><h3>Bygglovsärende-roller:</h3><li>CONTROL_OFFICIAL(Kontrollansvarig)</li><li>APPLICANT(Sökande)<li>PROPERTY_OWNER(Fastighetsägare)</li><li>PAYMENT_PERSON(Betalningsansvarig)</li><br><br><h3>Miljökontorärende-roller:</h3><li>INVOICE_RECIPENT(Fakturamottagare)</li><li>OPERATOR(Verksamhetsutövare)</li>
      enum:
 
      - APPLICANT
 
      - CONTACT_PERSON
 
      - CONTROL_OFFICIAL

       - INVOICE_RECIPENT
        - OPERATOR
 
      - PAYMENT_PERSON
 
      - PROPERTY_OWNER
     StakeholderType type: string
     typeStakeholderType:
string       enum:
 
      - ORGANIZATION
      - PERSON
- PERSON     SystemTypetype: string
     typeSystemType: string
      enum:
      - BYGGR
  - BYGGR   - ECOS
    - ECOS  type: string

Medvetna avvikelser

  • Handläggarna i ByggR ville ha filnamnet på dokument i anteckningsfältet i ByggR för att få en bättre överblick. Egentligen ska fältet “note” i Attachment-objektet användas för detta i CaseManagaement's API, men p.g.a. begränsningar i OeP’s integrationsadapter som inte möjliggör att e-tjänsteutvecklaren kan konfigurera att detta skickas med så valde vi att lösa detta i CaseManagement’s backend istället.

    • Detta påverkar endast bygglovsärenden

Säkerhetsklassning

Säkerhetsklass 1

Autentiseringsmetod: Oauth2

(Ref: Säkerhetsklassning av APIer )

API-ägare

<Kontaktuppgifter till den verksamhet som äger APIets livscykel>

Teknisk ägare

https://sundsvall.atlassian.net/wiki/spaces/API

Ansvarigt team: Team Dynasty

För tekniska frågor: teamdynasty@sundsvall.se

Länkar

Länkar till dev-portal;

FAQ

<FAQ>