Skip to content
This repository was archived by the owner on Jun 6, 2024. It is now read-only.
This repository was archived by the owner on Jun 6, 2024. It is now read-only.

Implement data schemas and generic datahandlers #60

@starsinmypockets

Description

@starsinmypockets

Description

We should define a schema which is attached to the dataset metadata and sent by the Datastore API with each API call.
It should look something like this:

{
  // ... existing metadata
  resources: [
    {
      name: 'countyData',
      uuid: '1bc-123',
      fields: [
      	{
      		name: 'countyId',
      		pk: true,
      		type: 'uuid'
      	},
      	{
      		name: 'population',
      		type: 'longInt'
      	},
      ]
    },
    {
      name: 'physicianData',
      uuid: '1bc-123',
      fields: [
      	{
      		name: 'physId',
      		pk: true,
      		type: 'uuid'
      	},
      	{
      		name: 'specialty',
      		type: 'int',
      		fk: true
      	},
      	{
      		name: 'WL1 County',
      		type: 'int',
      		fk: true
      	},      	
      	{
      		name: 'County1',
      		type: 'int',
      	},
      	{
      		name: 'race',
      		type: 'enum',
      		enum: ['White', 'African American', 'Native American', //...]
      	},
      	{
      		name: 'notes',
      		type: 'string'
      	}
    }  
  ]
}

On the client side, we will have access to this, and can start to use our type-safety to perform data operations from generic datahandlers - rather than writing custom code

for instance, if our schema defines a field: accpeptsMedicare type: bool we could provide a datahandler definition pieChartFromBoolField: {fieldName: 'acceptsMedicare'} which returns the chart.

This concept could / should be extended to provide a well-documented DSL that is tightly coupled to the datastore api.

An imaginary dsl could look like:

pieChartSeriesFromBool
pieChartSeriesFromEnum
pieChartSeriesFromRange
barChartSeriesFromBool
barChartSeriesFromEnum

etc.

*note - these are direct mappings from known API return values (along with metadata such as type) and known data formats for chart components

Further analysis will be required to capture the useful set of generic dataHandlers

Notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions