Skip to content
This repository has been archived by the owner on Dec 16, 2022. It is now read-only.

ShelterTech Data Mapping

awalkowiak edited this page Jul 18, 2019 · 19 revisions

Overview

ShelterTech data is provided via an API endpoint. The whole data is fetched using only one request and its result should consist all data gathered by the ShelterTech.

Data can be provided in .json files as well and uploaded using 'Upload data' view.

Organizations

Provider field Example value Mapped to
alternate_name "SHORTNAME" Organization.alternateName
certified true ignore
email "info@example.com, https://facebook.com/example" If the string is blank, Organization.email is set to null. If string contains at least one valid e-mail address, it is assigned to Organization.email. Any other address or link are skipped.
id 159 Organization.externalDbId
legal_status "Non-profit" Organization.legalStatus
long_description "Nonprofit organization that promotes solar power for low-income homeowners, communties, and governments, including no-cost solar installations and job training." Organization.description
name "Power Alternatives" Organization.name
short_description "Nonprofit organization that promotes alternatives." ignore
status "approved" When status is set to "approved" Organization.active is set to true. Otherwise, Organization.active is set to false.
verified_at "2018-09-07T02:41:53.743Z" ignore
website "https://companywebsite.org" Organization.url
certified_at "2018-09-07T02:41:53.743Z" ignore
services An array of Service objects. Organization.services
schedule Schedule ignore
phones An array of Phone objects. Every phone is assigned to the Organization
address Address Organization.location
notes An array of Note objects. ignore
categories An array of Category objects. ignore
ratings An empty array. ignore

ST_Organization.Address = SN_Organization.Location

Services

Provider field Example value Mapped to
alternate_name "PAPHI" Service.alternateName
application_process "To make an appointment in San Francisco, call […]" Service.applicationProcess
certified false If certified then Service.status is set to "Certified". Otherwise, Service.status is set to "Non-certified".
eligibility "randomName, randomName2. If you don’t have insurance, they will try to help you get it. English & Spanish." Service.eligibility
email "info@example.com, https://facebook.com/example" Service.email
fee "Insurance or sliding scale" Service.fees
id 22 Service.externalDbId
interpretation_services "Spanish" ignore
long_description "Office Hours:\nMonday through Friday from 6:30am-1:00pm\nSaturday from 6:30am-12:00pm\nOffice closed first and third Monday of the month." Service.description
name "Job Placement" Service.name
required_documents "No documentation required" mapped to RequiredDocument.document, as an only element of Service.docs
url "http://www.companywebsite.org/locationsStockton.html" Service.url
verified_at "2018-01-03T21:39:14.414Z" ignore
wait_time "Numbers at 8:30, Food at 10:30", "Priority is given to disabled, seniors, families" Service.waitTime
certified_at "2018-01-03T21:39:14.414Z" ignore
schedule Schedule Service.regularSchedule
notes An array of Note objects. ignore
categories An array of Category objects. ignore
eligibilities An array of Eligibility objects. ignore

Address

Provider field Example value Mapped to
id 626 Location.externalDbId
attention null PhysicalAddress.attention, PostalAddress.attention
address_1 "1234 Ocean Avenue" used to generate Location.name (address_1 + " - " + city + " (" + state + ")"), PhysicalAddress.address1, PostalAddress.address1
address_2 "City Name" ignore
address_3 "CA" ignore
address_4 "12345" ignore
city "City Name" used to generate Location.name (address_1 + " - " + city + " (" + state + ")"), PhysicalAddress.city, PostalAddress.city
state_province "CA" used to generate Location.name (address_1 + " - " + city + " (" + state + ")"), PhysicalAddress.stateProvince, PostalAddress.stateProvince
postal_code "12345" PhysicalAddress.postalCode, PostalAddress.postalCode
country "USA" PhysicalAddress.country, PostalAddress.country
latitude "38.123456" Location.latitude
longitude "-120.123456" Location.longitude

Note! ST_Address = SN_Location = SN_Location.PhysicalAddress + SN_Location.PostalAddress ()

Schedule

Provider field Example value Mapped to
id 626 ignore
schedule_days An array of ScheduleDays objects. RegularSchedule.openingHours

ScheduleDays

Provider field Example value Mapped to
id 626 ignore
day "Wednesday" etc. Mapped to proper number of OpeningHours.weekday (assuming that possible values are Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)
opens_at 900 Formatted to "hh:mm" and set to OpeningHours.opensAt
closes_at 1300 Formatted to "hh:mm" and set to OpeningHours.closesAt
open_time 900 Formatted to "hh:mm" and set to OpeningHours.opensAt (if opens_at is empty)
close_time 1300 Formatted to "hh:mm" and set to OpeningHours.closesAt (if closes_at is empty)
open_day "Wednesday" etc. ignore
close_day "Wednesday" etc. ignore

Phone

Provider field Example value Mapped to
id 1780 ignore
number "(123) 123-1234" Phone.number
extension "11" Phone.extension
service_type "Ext 501" Phone.type
country_code "US" If country_code is set to "US" Phone.language is set to "en". Otherwise, language is null.

Note

Provider field Example value Mapped to
id 123 ignore
note "Apply in person Wed 4-6:45pm. If accepted, you will be mailed card which you must bring with you to pick up food every Wed. You must live in zip code 12345, 12345, 12345, or 12345. Must bring ID." ignore

Eligibility

Provider field Example value Mapped to
name "Mental Illness", "Different Illness" ignore
id 123 ignore

Category

Provider field Example value Mapped to
name "Technology" ignore
id 123 ignore
top_level false ignore
featured false ignore

Additional information:

ST - ShelterTech, SN - ServiceNet

  • ST_Organization.Address is saved as SN_Organization.location, SN_Organization.location.physicalAddress and SN_Organization.location.postalAddress,
  • ST does not describe languages explicitly. They are hidden in notes or in descriptions. At this point we SN ignores them.
  • ST_Service.eligibility is a string mapped to SN_Eligibility,
  • ST_Service.eligibilities is a list of ST_Eligibilities and it isn't mapped to SN_Eligibility, because it is always set to null and conflicts with ST_Service.eligibility