Skip to main content

Sarapis Architecture Design

Overview

Sarapis has an open-source backend data administrator interface tailored for managing Human Services Data Standard (HSDS) datasets, which provide standardized information about health, human, and social services. The project's primary objective will be to create a modular, service-based backend that simplifies the management, validation, and interaction of HSDS datasets. 

Project Goals

  • Interoperability and Standardization: Enhance data interoperability by providing a platform that validates HSDS formats and ensures interface consistency in managing health, human, and social services information across various organizations. 
  • Scalability and Modularity: The service must provide modularity and scalability to ensure seamless integration with other HSDS-supporting applications.

Key Features

  • Database Management: CRUD (Create, Read, Update, Delete) operations for managing various HSDS entities
  • Taxonomy Management: Tools for managing and customizing taxonomies to classify resources and services.
  • Data Validation: Integration with OpenReferralsUK's schema validator to ensure dataset compliance with HSDS specifications
  • User and Role Management: Comprehensive user account, permissions, and authentication features to control access and data integrity.
  • Import/Export functionality: Support for data import and export in multiple formats to facilitate data exchange and integration

High-Level Architecture Overview

Due to the scalability and flexibility requirements of the project following a micro-services architecture, it will align well with the goals of modularity, scalability, and integration within the broader open-source ecosystem. The microservice architecture for the proposed HSDS backend administration interface can be structured as follows:

  • User Management Service
    • Functionality: Manages user's accounts, roles, permissions, and authentication
    • APIs:
      • `/register`for user registration
      • `/login` for user login and token issuance
      • `/roles` for managing roles and permissions
  • Data Management Service
    • Functionality: Handles CRUD operations for HSDS data, including organizations, locations, services, and other related entities.
    • APIs:
      • `/create` add a new record
      • `/read` to retrieve records
      • `/update` to modify records
      • `/delete` to remove records
  • Taxonomy Management Service
    • Functionality: Manages taxonomies and classifications used within the HSDS datasets
    • APIs:
      • `/create-taxonomy` to add new taxonomies
      • `/update-taxonomy` to edit taxonomies
      • `/list-taxonomies` to view available taxonomies
  • Data Validation Service
    • Functionality: Validates the schema and compliance of the dataset using OpenReferralsUKs validator
    • APIs:
      • `/validate` to validate entire datasets or specific records
  • Data Import/ExportExchange Service
    • Functionality: Manages import/export operations for datasets in various formats
    • APIs:
      • `/import` to upload and import datasets
      • `/export` to download a dataset given the correct permissions

You can view the HSDS schema here.

Low-Level Arhictecture

User Management Service

Data Management Service

Taxonomy Management Service

Data Exchange Service

Appendix

What is a taxonomytaxonomy?

You can think of a taxonomy as a structured system used to classify and organize information into categories, making it easier to understand, manage, and retrieve. It involves some sort of hierarchical arrangement, where items are grouped into broader categories and further divided into subcategories.

Health Services
- Medical Care
- - Primary Care
- - Specialty Care
- Mental Health
Housing Services
- Emergency Shelters
- Affordable Housing
- Housing Assistance Programs