Open Referral UK

LOOP partially aligns with the Open Referral UK data standard. The partial alignment is due to the way that the platform inherits application architecture from the Connected Kingston project (github here).

The Open Referral UK implementation is documented here: GitHub - OpenReferralUK/human-services: Extensions proposed by the English Local Government Association (LGA) and the local government OpenCommunity project to the OpenReferral standard for human services data. Schema generator code is given to express the schema in various formats. Data conversion routines to make it conform to the standard. API that serves the data in a format compliant with the standard.

The OpenReferral schema defines a structure for human services data - that is, a directory of services that meet human needs.

The Open Referral standard specifies a Human Services Data Specification (HSDS) which provides a schema for the data stored to conform to:

This schema is very extensive and covers certain concepts which are not applicable to this application. So rather model the database directly from the schema, the database has been modelled primarily for the purpose of this application with the HSDS model in mind.

This allows for a simple and understandable database model that can easily be mapped onto the resources described in the HSDS model. This is how the Open Referral API and export works, the database is mapped into virtual resources that conform to the standard whereas unused entities return empty stub responses.

Mappings

Below are the Open Referral resources and what tables they consist of. If a resource is not present, then you can assume that it is not user and therefore has been omitted.

you may notice some of the database tables have columns prefixed with o_r_, these are columns used purely for the purpose of supporting the Open Referral API. Some tables are merged, so the database needs to maintain the ID used for the extra tables.

organization

This is a simple mapping to the organisations table.

service

This is a simple mapping to the services table.

service_taxonomy

This is a simple mapping to the service_taxonomies table.

service_at_location

This is a simple mapping to the service_locations table.

location

This is a simple mapping to the locations table.

phone

The phone details are stored against the related records directly. Any record that has a phone number also has a o_r_phone_id column which is used to generate a virtual resource.

physical_address

These details are stored directly on the locations table.

A virtual resource is generated by using the o_r_physical_address_id column on the locations table.

regular_schedule

This is a simple mapping to the regular_opening_hours table.

holiday_schedule

This is a simple mapping to the holiday_opening_hours table.

taxonomy

This is a simple mapping to the taxonomies table.

Tools

 https://opencommunity.porism.com/ 

 https://api.porism.com/ServiceDirectoryService/swagger-ui.html

 https://docs.google.com/document/d/1UiYBv_Lgmj4CWCi_AXZEjso-SY-5ypwFLB4HZgy5lYM/edit   (CURIE Taxonomy implementation)