Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Beskrivning
En CaseManagement är 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 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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.
Image RemovedDatamodell
Denna datamodell är en visuell överblick över Java-klasserna.
Det är endast “CaseMapping” som lagras i databasen just nu.
, Ecos2 och vårt egna ärendehanteringssystem CaseData. CaseManagement fungerar som en ärendeförmedlare mellan ett externt system (idag främst Open ePlatform) och de underliggande systemen. CaseManagement tar emot ärenden i ett generiskt format och formaterar om ärendet så att det passar just det specifika system som det ska registreras i. CaseManagement håller även koll på kopplingen mellan det externa ärendet och det underliggande systemet och på så vis möjliggörs hämtning av status från det underliggande systemet, uppdateringar av ärendet med nya bilagor o.s.v.
Livscykelstatus
Produktion
Lösningsbeskrivning
Gliffy | ||||||
---|---|---|---|---|---|---|
|
Hantering av personuppgifter
Vi tar in ett personId fältet “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
.
Klicka på "Authorize" nedan och ange denna nyckel för att testa API:et.eyJ4NXQiOiJOVGRtWmpNNFpEazNOalkwWXpjNU1tWm1PRGd3TVRFM01XWXdOREU1TVdSbFpEZzROemM0WkE9PSIsImtpZCI6ImdhdGV3YXlfY2VydGlmaWNhdGVfYWxpYXMiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhZG1pbkBjYXJib24uc3VwZXIiLCJhcHBsaWNhdGlvbiI6eyJvd25lciI6ImFkbWluIiwidGllclF1b3RhVHlwZSI6bnVsbCwidGllciI6IjEwUGVyTWluIiwibmFtZSI6IkNvbmZsdWVuY2UtQ2FzZU1hbmFnZW1lbnQiLCJpZCI6NTIsInV1aWQiOiI0NjZiNTYwNi0zMjhiLTRmZmUtOWY0OS0zZjdjOTI3MWJkYmIifSwiaXNzIjoiaHR0cHM6XC9cL2FwaS1pbS10ZXN0LnN1bmRzdmFsbC5zZTo0NDNcL29hdXRoMlwvdG9rZW4iLCJ0aWVySW5mbyI6eyJVbmxpbWl0ZWQiOnsidGllclF1b3RhVHlwZSI6InJlcXVlc3RDb3VudCIsImdyYXBoUUxNYXhDb21wbGV4aXR5IjowLCJncmFwaFFMTWF4RGVwdGgiOjAsInN0b3BPblF1b3RhUmVhY2giOnRydWUsInNwaWtlQXJyZXN0TGltaXQiOjAsInNwaWtlQXJyZXN0VW5pdCI6bnVsbH19LCJrZXl0eXBlIjoiU0FOREJPWCIsInBlcm1pdHRlZFJlZmVyZXIiOiIiLCJzdWJzY3JpYmVkQVBJcyI6W3sic3Vic2NyaWJlclRlbmFudERvbWFpbiI6ImNhcmJvbi5zdXBlciIsIm5hbWUiOiJDYXNlTWFuYWdlbWVudCIsImNvbnRleHQiOiJcL2Nhc2VtYW5hZ2VtZW50XC8zLjIiLCJwdWJsaXNoZXIiOiJhZG1pbiIsInZlcnNpb24iOiIzLjIiLCJzdWJzY3JpcHRpb25UaWVyIjoiVW5saW1pdGVkIn1dLCJwZXJtaXR0ZWRJUCI6IiIsImlhdCI6MTY0NjI5NDcwOSwianRpIjoiZGM1MTkzNWMtOTk5OC00MjAzLThmM2QtYjNjNjlkNDA0ZjQwIn0=.TOgb3v6Ld8QSPnwCXbdhDHo6cvhj9fQj-Lwu-WIhcfTZzOHAJBKsGfKp27rrfFHnoJvY_k9DUo_mTlJw-e3RmJDIu3Fd9ZgBcs0yU8A0scDrUEZ0PN3HERGVJNYxTz7KJKDuVWbLznnb5cAMURMSS6gir3StG7kzhS7S8SLdprhZuuEJRr3TQWc6dwN90Nk_AoksxxoprlaL-0zMyqMq6CB62y83X59EEbTjENDR-_2V3ZWOERqOalnRNDW5VLRVUtXuFZhSDT4zFgYvAFef-ucek95WRaIgVJglBBtKYa3NnOr03Zwh_4NZp8OqWfZF82XT8fNTTQxy2EnWQ8t8gQ==
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.3"
paths:
/api-docs:
get:
tags:
- API
summary: OpenAPI-definition
parameters: []
responses:
"200":
description: ok
x-auth-type: None
/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"
example:
externalCaseId: caa230c6-abb4-4592-ad9a-34e263c2787b
caseType: NYBYGGNAD_ANSOKAN_OM_BYGGLOV
facilities:
- facilityType: STOREHOUSE
address:
addressCategories:
- VISITING_ADDRESS
propertyDesignation: SUNDSVALL BIRSTA 36:14
stakeholders:
- type: ORGANIZATION
roles:
- APPLICANT
- PAYMENT_PERSON
organizationName: Testorganisationen
organizationNumber: 723456-1321
- type: PERSON
roles:
- CONTACT_PERSON
firstName: Test
lastName: Testsson
personId: 7988710e-7c5c-4db9-ae77-41752baa2381
attachments:
- category: ANS
name: Some_name_2022-03-07
extension: .pdf
file: dGVzdA==
responses:
"400":
description: Bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Information"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/Information"
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/CaseResourceResponse"
/cases/case-mappings:
get:
tags:
- CaseMappings
description:
Returns the connection between externalCaseId and the case in the
underlying system.
parameters:
- name: external-case-id
in: query
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"
/cases/{external-case-id}/attachments:
post:
tags:
- Attachments
description: Add attachments to existing case.
parameters:
- name: external-case-id
in: path
required: true
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"
/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:
type: string
responses:
"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"
/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:
description: Organization number with 10 or 12 digits.
type: string
example: 19901010-1234
responses:
"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"
security:
- ApiKeyAuth: []
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: apikey
schemas:
Address:
required:
- addressCategories
type: object
properties:
addressCategories:
description:
"An address can have one or more address categories. For example,\
\ it can be the same address that is to be used for mail and invoices."
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:
description: c/o
type: string
example: Test Testorsson
attention:
type: string
example: Test Testorsson
propertyDesignation:
type: string
example: SUNDSVALL LJUSTA 7:2
appartmentNumber:
type: string
example: LGH 1001
location:
$ref: "#/components/schemas/Coordinates"
isZoningPlanArea:
type: boolean
invoiceMarking:
description: "Only in combination with addressCategory: INVOICE_ADDRESS"
type: string
AddressCategory:
enum:
- INVOICE_ADDRESS
- POSTAL_ADDRESS
- VISITING_ADDRESS
type: string
Attachment:
required:
- category
- name
- extension
- file
type: object
properties:
category:
allOf:
- $ref: "#/components/schemas/AttachmentCategory"
- nullable: false
name:
pattern: \S
type: string
example: The attachment name
nullable: false
note:
type: string
example: A note on an attachment.
extension:
pattern: \S
type: string
example: .pdf
nullable: false
mimeType:
type: string
example: application/pdf
file:
format: byte
description: Base64-encoded file (plain text)
pattern: \S
type: string
example: dGVzdA==
nullable: false
AttachmentCategory:
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
- ÄRB
- ÅTG
- ÖVER
type: string
Case:
required:
- externalCaseId
- caseType
- stakeholders
- attachments
type: object
properties:
externalCaseId:
description: Case ID from the client.
pattern: \S
type: string
example: caa230c6-abb4-4592-ad9a-34e263c2787b
nullable: false
caseType:
allOf:
- $ref: "#/components/schemas/CaseType"
- nullable: false
description:
type: string
example: Some description of the case.
caseTitleAddition:
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:
format: date-time
type: string
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:
type: string
example: Pågående
timestamp:
format: date-time
type: string
CaseType:
enum:
- ANMALAN_ATTEFALL
- LIVSMEDELSVERKSAMHET_ANMALAN_OM_REGISTRERING
- NYBYGGNAD_ANSOKAN_OM_BYGGLOV
type: string
example: NYBYGGNAD_ANSOKAN_OM_BYGGLOV
Coordinates:
type: object
properties:
latitude:
format: double
description: Decimal Degrees (DD)
type: number
example: 62.390205
longitude:
format: double
description: Decimal Degrees (DD)
type: number
example: 17.306616
EnvironmentalCase:
description: Ecos2-cases
required:
- externalCaseId
- caseType
- stakeholders
- attachments
- facilities
- startDate
type: object
properties:
externalCaseId:
description: Case ID from the client.
pattern: \S
type: string
example: caa230c6-abb4-4592-ad9a-34e263c2787b
nullable: false
caseType:
allOf:
- $ref: "#/components/schemas/CaseType"
- nullable: false
description:
type: string
example: Some description of the case.
caseTitleAddition:
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"
startDate:
format: date
description: Start date for the business.
type: string
example: 2022-01-01
nullable: false
endDate:
format: date
description: End date of the business if it is time-limited.
type: string
example: 2022-06-01
EnvironmentalFacility:
required:
- facilityCollectionName
type: object
properties:
description:
type: string
example: En fritextbeskrivning av facility.
address:
$ref: "#/components/schemas/Address"
facilityCollectionName:
description: The name on the sign.
pattern: \S
type: string
example: Sundsvalls testfabrik
nullable: false
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:
description:
"Type of facility.<br><br>Compatible with CaseType=NYBYGGNAD_ANSOKAN_OM_BYGGLOV:<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å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ö\
rskola)</li><li>PARKING(Parkering, Cykelparkering)</li><li>DEPOT(Upplag)</li><li>MARINA(Små\
båtshamn)</li><li>WALL(Mur)</li><li>PALING(Plank)</li><li>RECYCLING_STATION(Å\
tervinningsstation)</li><li>OTHER(övrigt)</li><br><br>Compatible with CaseType=ANMALAN_ATTEFALL:<li>FURNISHING_OF_ADDITIONAL_DWELLING(inredning\
\ av ytterligare bostad)</li><li>ANCILLARY_BUILDING(komplementbyggnad)</li><li>ANCILLARY_HOUSING_BUILDING(komplementbostadsbyggnad)</li><li>DORMER(takkupa)</li><li>EXTENSION(tillbyggnad)</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:
format: int32
type: integer
title:
type: string
detail:
type: string
instance:
type: string
Organization:
required:
- type
- roles
- organizationName
- organizationNumber
type: object
properties:
type:
allOf:
- $ref: "#/components/schemas/StakeholderType"
- nullable: false
roles:
description: An stakeholder can have one or more roles.
type: array
items:
$ref: "#/components/schemas/StakeholderRole"
nullable: false
organizationName:
pattern: \S
type: string
example: Sundsvalls testfabrik
nullable: false
organizationNumber:
description: Organization number with 10 or 12 digits.
pattern: \S
type: string
example: 19901010-1234
nullable: false
phoneNumber:
type: string
example: "060121212"
emailAddress:
type: string
example: test.testorsson@test.se
cellphoneNumber:
type: string
example: "0701231212"
addresses:
description:
An stakeholder may have one or more addresses. For example
one POSTAL_ADDRESS and another INVOICE_ADDRESS.
type: array
items:
$ref: "#/components/schemas/Address"
authorizedSignatory:
type: string
example: Test Testorsson
Person:
required:
- type
- roles
- firstName
- lastName
type: object
properties:
type:
allOf:
- $ref: "#/components/schemas/StakeholderType"
- nullable: false
roles:
description: An stakeholder can have one or more roles.
type: array
items:
$ref: "#/components/schemas/StakeholderRole"
nullable: false
firstName:
pattern: \S
type: string
example: Test
nullable: false
lastName:
pattern: \S
type: string
example: Testorsson
nullable: false
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:
description:
An stakeholder may have one or more addresses. For example
one POSTAL_ADDRESS and another INVOICE_ADDRESS.
type: array
items:
$ref: "#/components/schemas/Address"
personalNumber:
type: string
readOnly: true
PlanningPermissionCase:
description: ByggR-cases
required:
- externalCaseId
- caseType
- stakeholders
- attachments
- facilities
type: object
properties:
externalCaseId:
description: Case ID from the client.
pattern: \S
type: string
example: caa230c6-abb4-4592-ad9a-34e263c2787b
nullable: false
caseType:
allOf:
- $ref: "#/components/schemas/CaseType"
- nullable: false
description:
type: string
example: Some description of the case.
caseTitleAddition:
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:
type: 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:
- type
- roles
type: object
properties:
type:
allOf:
- $ref: "#/components/schemas/StakeholderType"
- nullable: false
roles:
description: An stakeholder can have one or more roles.
type: array
items:
$ref: "#/components/schemas/StakeholderRole"
nullable: false
phoneNumber:
type: string
example: "060121212"
emailAddress:
type: string
example: test.testorsson@test.se
cellphoneNumber:
type: string
example: "0701231212"
addresses:
description:
An stakeholder may have one or more addresses. For example
one POSTAL_ADDRESS and another INVOICE_ADDRESS.
type: array
items:
$ref: "#/components/schemas/Address"
oneOf:
- $ref: "#/components/schemas/Person"
- $ref: "#/components/schemas/Organization"
StakeholderRole:
description: <h3>General roles:</h3><li>CONTACT_PERSON(Kontaktperson)</li><br><br><h3>ByggR-roles:</h3><li>CONTROL_OFFICIAL(Kontrollansvarig)</li><li>APPLICANT(Sökande)<li>PROPERTY_OWNER(Fastighetsägare)</li><li>PAYMENT_PERSON(Betalningsansvarig)</li><br><br><h3>Ecos2-roles:</h3><li>INVOICE_RECIPENT(Fakturamottagare)</li><li>OPERATOR(Verksamhetsutövare)</li>
enum:
- APPLICANT
- CONTACT_PERSON
- CONTROL_OFFICIAL
- INVOICE_RECIPENT
- OPERATOR
- PAYMENT_PERSON
- PROPERTY_OWNER
type: string
StakeholderType:
enum:
- ORGANIZATION
- PERSON
type: string
SystemType:
enum:
- BYGGR
- ECOS
type: string
servers:
- url: https://api-test.sundsvall.se/casemanagement/3.3
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
API specifikation
Open api | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
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 DynastyUnmasked
För tekniska frågor:teamdynasty@sundsvall teamunmasked@sundsvall.se
Länkar
Länkar till dev-portal;
Test & Sandbox: https://api-im-test.sundsvall.se/devportal/apis/2b5a18bc-0e6e-4afb-92d9-92743aa37a5c/overview
Produktion: https://api-im.sundsvall.se/devportal/apis/a74e0ba9-9888-4ee0-a831-8df08df3ce20/overview