ABCDEFGHIJKLMNOPQRSTUVWX
1
tablenametypedescriptiondescription_amendedformatconstraints_requiredconstraints_uniqueconstraints_enumexamplecoreReview QuestionsReview Question AnswersRecommendation
(Agreement with the 2.1 Core and 2.1 Full columns)
Open Data CoopMike, Skyler and Devin from original drafting sessionRob (211? profile)KatePaulIanShelbySarahGregDevin
2
organizationidstringEach organization must have a unique identifier.uuidtruetrued9d5e0f5-d3ce-4f73-9a2f-4dd0ecc6c610YY
3
organizationnamestringThe official or public name of the organization.truefalseExample Organization Inc.YY
4
organizationalternate_namestringAlternative or commonly used name for the organization.falsefalseExample OrgYY
5
organizationdescriptionstringA brief summary about the organization. It can contain markup such as HTML or Markdown.truefalseExample Org is a non-profit organization dedicated to providing services to qualified beneficiariesYY
6
organizationemailstringThe contact e-mail address for the organization.emailfalsefalseemail@example.comYY
7
organizationwebsitestringThe URL (website address) of the organization.urifalsefalsehttp://example.comYY. Keep this but rename to "website"TBH i would rename this to website because url might be easilt confused with the below uri field. that might be out of scope though.
8
organizationtax_statusstringGovernment assigned tax designation for tax-exempt organizations.DEPRECATED: Government assigned tax designation for tax-exempt organizations.falsefalsetax_status
9
organizationtax_idstringA government issued identifier used for the purpose of tax administration.DEPRECATED: A government issued identifier used for the purpose of tax administration.falsefalsetax_id
10
organizationyear_incorporatednumberThe year in which the organization was legally formed.%Yfalsefalse2011YAs aboveRequiredmandatory
11
organizationlegal_statusstringThe legal status defines the conditions that an organization is operating under; e.g. non-profit, private corporation or a government organization.falsefalselegal_statusYAs aboveRequiredmandatory
12
organizationlogostringA URL to an image associated with the organization which can be presented alongside its name.falsefalsehttps://openreferral.org/wp-content/uploads/2018/02/OpenReferral_Logo_Green-4-1.pngYoptional, inconistently used for us
13
organizationuristringA persistent identifier to uniquely identify the organization.A persistent identifier to uniquely identify the organization such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the website field of the Organization.urifalsefalsehttp://example.comWe need to decide name for this as the comments say this and the other field should be named website. Named uri for now.Y. Keep this but rename to websiteSee note by Paul MacKay on this as well as URLNote that org IDs are 1-to-many in US (and other) contextsfine, not requiredThis is an API spec concern more than a data spec concern. A data record doens't necessarily have a URI but an API resource must. I would expect the URI to be generated at runtime by the API server and then passed in the API response.Maybe need a topic: "How do we handle URIs and outside datasets."
14
organizationparent_organization_idstringThe identifier of the organization's parent organizationfalsefalsecd09a387-91f4-4555-94ec-e799c35344cdYAdd because it allows for a hierarchical organization structureagree with supporting hierarchical org structure
15
programidstringEach program must have a unique identifier.The identifier for the program. Each program must have a unique identifier.uuidtruetruee7ec2e57-4540-43fa-b2c7-6be5a0ef7f42Y. Keep as as string (for internal identifiers), but recommend a UUID. Add guidance. for HSDS best practice (maybe even a best practice application profile). Guidance can say how internal IDs can be recored. This applies to ALL ids
Should this be UUID? Maybe we should allow the profiling mechanism to give extra contraint such as being a UUID if this is not explicit.
16
programorganization_idstringEach program must belong to a single organization. The identifier of the organization should be given here.The identifier for the organization which the program belongs to. Each program must belong to a single organization, and the identifier for that organization should be given here.truetrue5978833f-21aa-4235-a56b-7d2f94ce8f35Y
17
programnamestringThe name of the programtruefalseCommunity Mental Health SupportY
18
programalternate_namestringAn alternative name for the programIf the program has an alternative name it can be given herefalsefalseMyCity Mental Health GroupY
19
programdescriptionstringA brief summary of the programA brief and clear summary of the programtruefalseComprehensive Mental Health Services available to residents of MyCity including CBT and Counselling. This is not an emergency service and should not be used as an alternative to hospital and GP services.Y
20
serviceidstringEach service must have a unique identifier.The identifier for the service. Each service must have a unique identifier.uuidtruetrueac148810-d857-441c-9679-408f346de14bYCould be a UUID?ID types should be consistent (all uuid or all string)
21
serviceorganization_idstringThe identifier of the organization that provides this service.truefalse0fdfb57f-c147-4cfb-864c-44788a335d8cYYUUID?
22
serviceprogram_idstringThe identifier of the program this service is delivered under.falsefalse24682fa0-3eda-4afc-a026-84a21c7a882eYUUID?If you introduce programs then a service may be part of several
23
servicenamestringThe official or public name of the service.truefalseCommunity CounsellingYY
24
servicealternate_namestringAlternative or commonly used name for a service.If the service has an alternative or commonly used other name, it can be given here.falsefalseMyCity Counselling ServicsY. Later accommodate multiple descriptionsWe have former and alternative name fields, but fine with having just alternateIs it worth adding several names here and simply suggest using it as part of a search based on nameMultiples could be useful
25
servicedescriptionstringA description of the service.falsefalseCounselling Services provided by trained professionals. Suitable for people with mental health conditions such as anxiety, depression, or eating disorders as well as people experiencing difficult life events and circumstances. YY. Later accommodate multiple descriptionsConsider allowing multiple descriptions so as to accommodate different audiences (e.g. managers and service users)We do support "extra" descriptions when a record is put into a group / category that allows extra description, but don't care about this for exchange at this time.

We also have specialized fields for internal use descriptions (manager's fields)
We definitely need the markup or a lot of quality in making it more readable disappears.

I like Shelby's idea of description per audience.
i would support having a plaint ext description and a markup-ed description. i like the idea of having multiple descriptions for multiple audiences, but that sounds like it's getting into more complicated territory - like would we actually need a "description" model that has plain text, markup, audience, and maybe other fields?Useful to have recommendation for how to include multiples using service_attributes or another table.
26
serviceurlstringURL of the serviceurifalsefalsehttp://example.com/counsellingYY
27
serviceemailstringEmail address for the serviceAn email address which can be used by WHOM? to contact the service provider.emailfalsefalseemail@example.comYYWe often have to keep multiple emails per service (just FYI).
28
servicestatusstringThe current status of the service.The current status of the service which can be active, inactive, defunct, or temporarily closed.truefalse
active,inactive,defunct,temporarily closed
activeYYKeep this as text. It can be an enumeration in a profileWe have multiple, purpose-specific status fields (e.g. deletion date, public status, and so on) that can operate together or independently.This is needed in the UK. Much better to have enumerated values so that anybody consuming any OR data will know the state of it.
29
serviceinterpretation_servicesstringA description of any interpretation services available for accessing this service.falsefalseInterpretation services are available in Urdu, Polish, and SlovakYPart of language fieldset for us, this is fineit's unclear to me how this is different than having the languages fields. is this saying that in addition to specific languages supported, you can ask for interpretations ervices for other langs?
30
serviceapplication_processstringThe steps needed to access the service.A description of the steps needed to access this service.falsefalseIf you are an NHS patient please ask your GP for a referral letter, we will then be in touch with you directly. If you are not an NHS patient you should ring our reception to arrange an appointmentYmandatory
31
servicefees_descriptionstringDetails of any charges for service users to access this service.falsefalseNon-NHS patients are expected to pay for their counselling sessions. We charge a flat rate per hour of counselling. The current rate is £50 per hour. Please see our website for up to date prices.Y - should we call this fees_descriptionKeep but deprecate in favour of cost_optionmandatory for most
we keep a seperate element of this fieldset that describes fee assistance programs
32
servicewait_timestringTime a client may expect to wait before receiving a service.DEPRECATED: Time a client may expect to wait before receiving a service.falsefalsewait_time
33
servicefeesstringDetails of any charges for service users to access this service.DEPRECATED: Details of any charges for service users to access this service.falsefalsefees_description
34
serviceaccreditationsstringDetails of any accreditations. Accreditation is the formal evaluation of an organization or program against best practice standards set by an accrediting organization.falsefalseAll of our practitioners are accredited by the BASC, UKCP, and the Professional Standards BodyYKeep but deprecate in favour of reviewoptionalYes UK review
35
serviceeligibility_descriptionstringA description of the type of person for whom this service is intended.falsefalseThis service is intended for all people aged 12 and over who require counselling services in the MyCity areaY
36
serviceminimum_agenumberThe minimum age required to meet this eligibility requirement.The minimum age of a person required to meet this eligibility requirement.falsefalse12Y. Not mandatory but recommed 0 or more
If this is required then what we do for age ranges that are for all ages? We could say you should put 0 for min and 999 for max, however that is ugly. A slightly nicer option is to make only mininum age required so that an empty max age will mean any age, so all ages will just be 0 for minimum age and nothing for max age. For 16 and over it will just be 16 in min age only. For under 16 it will be 0-16.

We are also loosing the ability to do multiple age ranges which was possible before as you could have multiple eligibility criteria. So another option would be to keep the eligibility table but be called somthing like eligibility_age and just have min max ages in there, but that will add complexity for implenters.
Added (moved from eligibility) as a key attribute that needs to be consistently definedyes, important, seperate from rest of eligibility info - need to allow fraction (decimal please); blank means no limit
37
servicemaximum_agenumberThe maximum age required to meet this eligibility requirement.The maximum age of a person required to meet this eligibility requirement.falsefalse100YPossibly make this not required as aboveAdded (moved from eligibility) as a key attribute that needs to be consistently defined(non-211 point: need to be able to distinguish between "no limits" and "no data" without overloading null)

Initial idea: min/max null/null = no data, min/max 0/null = no limits
yes, important, seperate from rest of eligibility info - need to allow fraction (decimal please); blank means no limit
38
serviceassured_datedateThe date that the information about the service was last checkedfalsefalse2005-01-01Defer to discussion on updates and metadata. Make date/timeShould this be datetime?Wanted in the UK for confirmation as to when the sevice data was last assured, irrespective of any updates madeWe need confidence on the data accuracy. The assured date says it met the data quality standards on this date. It gives the consumer a means to risk assess whether to present the data to its audience. e.g. we would not show anything that hadn't been assured in last 3 months.Agree to keepign this (see assured field convo for orgs)AIRS is very interested in ensuring these are included.Should we check on the language? I usually say `verified` although I also put it in the context of "quality assurance" so `assured` might not be wrong per se. Just wondering what's more generally recognizable.
39
serviceassurer_emailstringThe contact e-mail address for the person or organization which last assured the service.emailfalsefalseemail@example.comDefer to discussion on updates and metadataWanted in the UK so assurance can be traced back to a person or an organisationNot bothered where it is held as long as it is for every service. Every service should have an accountable organisation/person. This gives confidence to a consumer and a contact to provide errors or complaints. It is important to the userfulness of OR.AIRS is very interested in ensuring these are included.
40
servicelicensesstringAn organization may have a license issued by a government entity to operate legally. A list of any such licenses can be provided here.DEPRECATED: An organization may have a license issued by a government entity to operate legally. A list of any such licenses can be provided here.falsefalselicences
41
servicealertstringNotice of any short term alerts concerning the service.Notice of any short term alerts concerning the service. e.g. falsefalseFollowing COVID-19 we have moved most of our counselling sessions online. Please contact the reception if you require further information.
42
attributeidstringEach service_attribute entry should have a unique identifier.The identifier of the service_attribute entry. Each service_attribute entry should have a unique identifier.uuidtruetrueae58cc39-8b70-4ab1-8aea-786882e5ac8eYSee service_attribute noteUUID?
43
attributelink_idstringThe identifier of the service to which this taxonomy term applies.The identifier of the entity to which this taxonomy term applies.truefalsef28dd44b-0c4d-479f-8e90-4c52219a8b3cYThis was missed out of review sheet, but is needed?See service_attribute note. Make link_id and requiredUUID?
44
attributetaxonomy_term_idstringThe identifier of this taxonomy term from the taxonomy table.truefalse6bd624ce-8512-497a-bcb2-7ce1a5dc1680YSee service_attribute note. Make mandatoryShould this be required? as I thought without a taxonomy term an attribute will be meaningless.
45
attributelink_typestringWhat the taxonomy term describes, e.g. the service eligibility or the sevice intended audience. Populate from an enumeration (an open codelist)A code taken from an enumerated open codelist to indicate what the taxonomy term describes e.g. the service eligibility or intended audience.falsefalselink_typeYSee service_attribute note. We nedd link entity and link_type.Add this field to denote what type of service attribute the taxonomy term relates to. Values to come form an enumeration (an open codelist)
46
attributelink_entitystringThe table of the link_idtruefalselink_entityYis an enumeration of tables needed?ODSC to recommend how this can be used
47
attributevaluestringThe value (if any) of an attributefalsefalsevalueYSee service_attribute noteAdd this field so attributes can optionally have values whose units are defined by the taxonomy term
48
service_at_locationidstringEach entry must have a unique identifier.The identifier of the entry. Each entry must have a unique identifier.uuidtruetruee94c9f38-1e8f-4564-91d4-d53501ab1765YYUUID?
49
service_at_locationservice_idstringThe identifier of the service at a given location.truefalseab231982-2106-4a55-80fc-b305560c5556YYUUID?
50
service_at_locationlocation_idstringThe identifier of the location where this service operates.truefalse2528e812-ccbb-43a7-b761-a90f27ea9ac4YYUUID?
51
service_at_locationdescriptionstringAny additional information that should be displayed to users about the service at this specific location.falsefalsedescriptionYAdded to the UK version in case it might be useful
52
locationidstringEach location must have a unique identifierThe identifier of the location. Each location must have a unique identifier.uuidtruetrue3a19ff88-4620-4d17-9830-ac1d859eb5d5YUUID?
53
locationlocation_typestringEnumeration of physical, postal, virtualThe type of location, which may be either physical, postal, or virtual.truefalsephysical,virtualphysicalYFrom notes it says we should delete this. Shall we?We may need combinations of types. DEELETE THIS. Do we have an intial list/recommended list of these types? Do we leave them to be extended by the profiles?

Or, could this be handled taxonomincally?
Enumerated type to denote if a location is physical, postal only or virtualThis could replace attending type.
54
locationurlstringThe URL of a virtual locationIf location_type is virtual, then this field represents the URL of a virtual location.urifalsefalsehttp://example.comYAdded to properly accommodate virtual locationsShould there not be a telephone number for a telephone service?
55
locationorganization_idstringEach location entry should be linked to a single organization. This is the organization that is responsible for maintaining information about this location. The identifier of the organization should be given here. Details of the services the organization delivers at this location should be provided in the services_at_location table.The organization identifier for a location. This is the organization that is responsible for maintaining information about this location. The identifier of the organization should be given here. Details of the services the organization delivers at this location should be provided in the services_at_location table.falsefalse985e4a42-bd9f-4edc-911d-0243a4640acaUUID?Could consider differentiating location organisations from provider organisations (and review organisations)
56
locationnamestringThe name of the locationfalsefalseMyCity Civic CenterY
57
locationalternate_namestringAn alternative name for the locationIf the location has an alternative name then it may be given here.falsefalseCivic Center
58
locationdescriptionstringA description of this location.falsefalseMyCity Civic Center is located on Main Street and contains facilities for a number of civic and community services available.Y
59
locationtransportationstringA description of the access to public or private transportation to and from the location.falsefalseMyCity Civic Center is serviced by the number 1 Bus and is a short walk from the Main Street Metro Station
60
locationlatitudenumberY coordinate of location expressed in decimal degrees in WGS84 datum.falsefalse100Y
61
locationlongitudenumberX coordinate of location expressed in decimal degrees in WGS84 datum.falsefalse101Y
62
locationexternal_identifierstringThird party identfier of a location e.g. UK UPRN or what3wordsA third party identifier for a location which can be drawn from other services e.g. UK UPRN or what3words.falsefalse///cheer.parent.moleUPRN is required by UK government. It's probably not relevant outside the UK, but other identifiers might be
63
locationexternal_identifier_typestringEnumeration including UPRN, what3words and othersThe scheme used for the location's external_identifier e.g. UK UPRN or what3words.falsefalsewhat3wordsURPN should be used where available in the UK
64
phoneidstringEach entry must have a unique identifierThe id for a phone number. Each entry must have a unique identifier.uuidtruetrue1554f2e2-a373-45db-a3fa-9fc48a61c15eYYUUID?
65
phonelocation_idstringThe identifier of the location where this phone number is locatedfalsefalse3133fbc3-469a-4ab7-9158-421acfe66229YUUID?
66
phoneservice_idstringThe identifier of the service for which this is the phone numberfalsefalse9d2104f3-b9b2-4719-a85d-743fc62714a6YUUID?
67
phoneorganization_idstringThe identifier of the organization for which this is the phone numberfalsefalsec1066581-4d59-45c7-9072-40e745e3c98cYUUID?
68
phonecontact_idstringThe identifier of the contact for which this is the phone numberfalsefalse52fd7852-8f0e-4b5e-9d93-ff96386096c4YYUUID?
69
phoneservice_at_location_idstringThe identifier of the ‘service at location’ table entry, when this phone number is specific to a service in a particular location.falsefalsea4edb74e-c262-4379-bf87-2bf90f6f4803YUUID?
70
phonenumberstringThe phone numbertruefalse"+44 1234 234567"YY
71
phoneextensionnumberThe extension of the phone numberfalsefalse100Y
72
phonetypestringIndicates the type of phone service, drawing from the RFC6350 list of types (text (for SMS), voice, fax, cell, video, pager, textphone).falsefalsevoiceY
73
phonedescriptionstringA description providing extra information about the phone service (e.g. any special arrangements for accessing, or details of availability at particular times.falsefalseOur main reception phone number. The phones will be available from 0800 (8am) until 1800 (6pm) local time. There may be some slight delays in answering your call if we are busy.
74
contactidstringEach contact must have a unique identifierThe identifier for the contact. Each contact must have a unique identifier.uuidtruetrue1e7efce3-639b-4880-940c-b95cd30cdb50YYUUID?
75
contactorganization_idstringThe identifier of the organization for which this is a contactfalsefalseae67a707-5893-4225-b0b1-320ab9cb596bYUUID?
76
contactservice_idstringThe identifier of the service for which this is a contactfalsefalse46f31178-dbb7-45e4-be37-c69320e08c36YYUUID?
77
contactservice_at_location_idstringThe identifier of the ‘service at location’ table entry, when this contact is specific to a service in a particular location.falsefalse93eaf18d-1cd2-4ec7-bffb-3c9172ee5070YUUID?
78
contactlocation_idstringThe identifier for the location_id when the location of the contact is relevant.The identifier for the location_id when the location of the contact is relevant.falsefalse2226a1e5-7ff1-4c46-a5fb-955304b05917YUUID?
79
contactnamestringThe name of the personThe name of the contact.falsefalseAnn PersonaYY There may be a separate contact organisation, not linked to the organisation - done in a local extension
80
contacttitlestringThe job title of the personThe job title of the contact.falsefalseReception ManagerYY
81
contactdepartmentstringThe department that the person is part ofThe department that the contact is a part of.falsefalseReceptionYnot used
82
contactemailstringThe email address of the personThe email address of the contact.emailfalsefalseemail@example.comY
83
addressidstringEach postal address must have a unique identifierThe id of the postal address. Each postal address must have a unique identifier.uuidtruetrue74706e55-df26-4b84-80fe-ecc30b5befb4YYUUID?
84
addresslocation_idstringThe identifier of the location for which this is the postal address.falsefalsed57b7ee4-9bcf-4351-858b-c42860beb869YYUUID?
85
addressattentionstringThe person or entity whose attention should be sought at the location (Often included as ‘care of’ component of an address.)The name of the person or entity whose attention should be sought at the location. These are often included as a "care of" component of an address.falsefalseA. PersonaYY
86
addressaddress_1stringThe first line(s) of the address, including office, building number and street.truefalse1-30 Main StreetYY
87
addressaddress_2stringA second (additional) line of address information.falsefalseaddress_2Y
88
addresscitystringThe city in which the address is located.truefalseMyCityYY
89
addressregionstringThe region in which the address is located (optional).falsefalseregionYY
90
addressstate_provincestringThe state or province in which the address is located.truefalseYY
91
addresspostal_codestringThe postal code for the address.truefalsepostal_codeYY
92
addresscountrystringThe country in which the address is located. This should be given as an ISO 3361-1 country code (two letter abbreviation)truefalseUSYY
93
addressaddress_typestringEnumeration of physical, postal, virtualThe type of address which may be physical, postal, or virtual.truefalsephysical,postalpostalYY. Recommend an enumeration. Consider how profiles work to extend enumerations or add them.Is this a fixed enumeration or should we allow profiles to add more?
94
scheduleidstringEach entry must have a unique identifierThe identifier for the schedule. Each entry must have a unique identifier.uuidtruetrue48102e86-bb50-41c4-8f1e-e269368c41d1YYUUID?
95
scheduleservice_idstringThe identifier of the service for which this is the regular schedulefalsefalseae8b7eaf-7e7d-4128-a403-ae097f146356YYUUID?
96
schedulelocation_idstringThe identifier of the location for which this is the regular schedulefalsefalsedd9e501b-4df9-4e71-85ac-29748e7e2d5aYUUID?
97
scheduleservice_at_location_idstringThe identifier of the ‘service at location’ table entry, when this schedule is specific to a service in a particular location.falsefalse0a41a90a-b5a5-4541-87e2-5cc2fd72536bYYUUID?
98
schedulevalid_fromdateThe date from which the schedule information is valid.The date from which the schedule information is valid. It must be in the ISO 8601 format of YYYY-MM-DDfalsefalse2005-01-01YY
99
schedulevalid_todateThe last date on which the schedule information is valid.The last date on which the schedule information is valid. It must be in the ISO 8601 format of YYYY-MM-DDfalsefalse2005-01-01YY
100
scheduledtstartdateiCal - The date of the first event is the schedule. Necessary when using the ‘interval’ feature, optional otherwise.falsefalse2005-01-01YY