syntax = “proto3”; package primary.connect;

import “google/protobuf/timestamp.proto”;

import “address.proto”; import “name.proto”; import “phone_number.proto”;

message Demographics {

enum Race {
  RACE_UNKNOWN = 0;
  RACE_AMERICAN_INDIAN_OR_ALASKA_NATIVE = 1;
  RACE_ASIAN = 2;
  RACE_BLACK_OR_AFRICAN_AMERICAN = 3;
  RACE_NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER = 4;
  RACE_OTHER = 5;
  RACE_WHITE = 6;
  RACE_PREFER_NOT_TO_DISCLOSE = 7;
  RACE_MIDDLE_EASTERN_OR_NORTH_AFRICAN = 8;
  RACE_SOUTH_OR_CENTRAL_AMERICAN_INDIAN = 9;
}

enum RaceDetail {
  RACE_DETAIL_UNKNOWN = 0;
  RACE_DETAIL_ASIAN_INDIAN = 1;
  RACE_DETAIL_CHINESE = 2;
  RACE_DETAIL_CAMBODIAN = 3;
  RACE_DETAIL_FILIPINO = 4;
  RACE_DETAIL_JAPANESE = 5;
  RACE_DETAIL_KOREAN = 6;
  RACE_DETAIL_LAOTIAN = 7;
  RACE_DETAIL_VIETNAMESE = 8;
  RACE_DETAIL_OTHER_ASIAN = 9;
  RACE_DETAIL_NATIVE_HAWAIIAN = 10;
  RACE_DETAIL_GUAMIAN_OR_CHAMORRO = 11;
  RACE_DETAIL_SAMOAN = 12;
  RACE_DETAIL_OTHER_PACIFIC_ISLANDER = 13;
  RACE_DETAIL_PREFER_NOT_TO_DISCLOSE = 14;
}

enum MaritalStatus {
  MARITAL_STATUS_UNKNOWN      = 0;
  MARITAL_STATUS_SEPARATED    = 1;
  MARITAL_STATUS_UNMARRIED    = 2;
  MARITAL_STATUS_COMMON_LAW = 3;
  MARITAL_STATUS_DIVORCED = 4;
  MARITAL_STATUS_LEGALLY_SEPARATED    = 5;
  MARITAL_STATUS_LIVING_TOGETHER      = 6;
  MARITAL_STATUS_INTERLOCUTORY        = 7;
  MARITAL_STATUS_MARRIED      = 8;
  MARITAL_STATUS_ANNULLED = 9;
  MARITAL_STATUS_OTHER        = 10;
  MARITAL_STATUS_DOMESTIC_PARTNER = 11;
  MARITAL_STATUS_REGISTERED_DOMESTIC_PARTNER  = 12;
  MARITAL_STATUS_SINGLE= 13;
  MARITAL_STATUS_UNREPORTED = 14;
  MARITAL_STATUS_WIDOWED = 15;
}

enum Sex {
  SEX_UNKNOWN = 0;
  SEX_FEMALE = 1;
  SEX_MALE = 2;
  SEX_OTHER = 3;
  SEX_NON_BINARY = 4;
  SEX_PREFER_NOT_TO_DISCLOSE = 5;
}

enum Gender {
  GENDER_UNKNOWN = 0;
  GENDER_FEMALE = 1;
  GENDER_MALE = 2;
  GENDER_OTHER = 3;
  GENDER_NON_BINARY = 4;
  GENDER_TRANSGENDER_MALE = 5;
  GENDER_TRANSGENDER_FEMALE = 6;
  GENDER_PREFER_NOT_TO_DISCLOSE = 7;
}

enum SexualOrientation {
  ORIENTATION_UNKNOWN = 0;
  ORIENTATION_HOMOSEXUAL = 1;
  ORIENTATION_HETEROSEXUAL = 2;
  ORIENTATION_BISEXUAL = 3;
  ORIENTATION_QUESTIONING = 4;
  ORIENTATION_OTHER = 5;
  ORIENTATION_PREFER_NOT_TO_DISCLOSE = 6;
}

enum Ethnicity {
  ETHNICITY_UNKNOWN = 0;
  ETHNICITY_HISPANIC = 1;
  ETHNICITY_NON_HISPANIC = 2;
  ETHNICITY_PREFER_NOT_TO_DISCLOSE = 3;
}

enum EthnicityDetail {
  ETHNICITY_DETAIL_UNKNOWN = 0;
  ETHNICITY_DETAIL_MEXICAN = 1;
  ETHNICITY_DETAIL_PUERTO_RICAN = 2;
  ETHNICITY_DETAIL_CUBAN = 3;
  ETHNICITY_DETAIL_OTHER = 4;
  ETHNICITY_DETAIL_PREFER_NOT_TO_DISCLOSE = 5;
}

Name name = 1;
string dob = 2;
string ssn = 3;
Sex sex = 4;
Gender gender = 5;
SexualOrientation sexual_orientation = 6;
repeated Race races = 7;
repeated RaceDetail race_details = 8;
Ethnicity ethnicity = 9;
repeated EthnicityDetail ethnicity_detail = 10;
MaritalStatus marital_status = 11;
bool is_deceased = 12;
google.protobuf.Timestamp death_date_time = 13; /* ISO 8601 */
repeated PhoneNumber phone_numbers = 14;
repeated string email_addresses = 15;
string language_code = 16;
repeated string citizenships = 17;
Address address = 18;

}