This repository contains ODA architecture and UI definitions.
See suunnitteluperiaatteet.md (in Finnish)
The architecture is guided by the following principles:
- Modular API first system
- Composed of microservices
- Simple and minimalistic user experience
- User centric
- Multilingual
- Agile development
- Systems design
- Small is beautiful
- Open data
- Open source
- Open API
- Open standards
- My Data.
Further reading (in Finnish): Arkkitehtuuriperiaatteet
Currently implemented modules are listed below. See their repositories for more detailed software achitecture description.
Backend provides static resources, API gateway and integration to Suomi.fi SSO. Backend is the contact point for web browsers and handles security aspects such as CSRF protection.
ODA ESB provides XML interfaces for external services via KaPa and converts external XML interfaces to FHIR/JSON interfaces for internal services.
FHIR Service Provides FHIR resource APIs on top of oda-phr and external systems that provide FHIR APIs.
Java library for providing FHIR services.
Logging Service provides a centralized logging server and a client library that handles server communication when built into other services.
Personal health record database.
Shared server side Java library.
Web Browser UI that is served from oda-backend.
Oda-notification-service sends notifications to end users.
Oda-cds-service acts as a decision making service for oda-fhir-service regarding specific questionnaires stored in oda-phr.
Oda-analytics-service generates dashboard reports from ODA log data.
ODA OpenID Connect Provider for authenticating and authorizing end users.
Provides an API to file storage. Checks authorization using oda-fhir-service.
Information is stored primarily as FHIR resources. Data model is described in ODA RFC repository.
ODA uses standardized codesets whenever possible. See full codes and code systems listing.
Documented (in Finnish): Roolit ja valtuutukset
See Integrations for details.
Some of the module interactions are described with sequence diagrams.
How a service provider is selected for a customer is described in customer-to-service.md.
Current microservices are implemented as standalone Java 8 applications with Spring Boot. PostgreSQL 9.6 is used as database.
Web frontend is implemented as an EcmaScript 6/HTML 5 single page application. Key libraries include
- react UI-component library
- react-router v4 front-end routing and
- redux for application state handling.
- Wireframes are produced with Sketch.
- Working with diagrams
- Code Conventions
- Working with FHIR profiles
See glossary.md