# Generated by Django 4.2.10 on 2024-02-22 03:52

import _socket
from django.conf import settings
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import django_audit_fields.fields.hostname_modification_field
import django_audit_fields.fields.userfield
import django_audit_fields.fields.uuid_auto_field
import django_audit_fields.models.audit_model_mixin
import django_revision.revision_field
import edc_crf.model_mixins.crf_status_model_mixin
import edc_model.validators.date
import edc_model_fields.fields.custom_django_fields
import edc_model_fields.fields.other_charfield
import edc_protocol.validators
import edc_utils.date
import edc_visit_tracking.managers
import simple_history.models
import uuid


class Migration(migrations.Migration):

    dependencies = [
        ("intecomm_lists", "0012_visitreasons_custom_name"),
        ("sites", "0002_alter_domain_unique"),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ("intecomm_subject", "0142_alter_historicalhtninitialreview_managed_by_old_and_more"),
    ]

    operations = [
        migrations.CreateModel(
            name="HistoricalCareseekingB",
            fields=[
                (
                    "revision",
                    django_revision.revision_field.RevisionField(
                        blank=True,
                        editable=False,
                        help_text="System field. Git repository tag:branch:commit.",
                        max_length=75,
                        null=True,
                        verbose_name="Revision",
                    ),
                ),
                (
                    "created",
                    models.DateTimeField(
                        blank=True, default=django_audit_fields.models.audit_model_mixin.utcnow
                    ),
                ),
                (
                    "modified",
                    models.DateTimeField(
                        blank=True, default=django_audit_fields.models.audit_model_mixin.utcnow
                    ),
                ),
                (
                    "user_created",
                    django_audit_fields.fields.userfield.UserField(
                        blank=True,
                        help_text="Updated by admin.save_model",
                        max_length=50,
                        verbose_name="user created",
                    ),
                ),
                (
                    "user_modified",
                    django_audit_fields.fields.userfield.UserField(
                        blank=True,
                        help_text="Updated by admin.save_model",
                        max_length=50,
                        verbose_name="user modified",
                    ),
                ),
                (
                    "hostname_created",
                    models.CharField(
                        blank=True,
                        default=_socket.gethostname,
                        help_text="System field. (modified on create only)",
                        max_length=60,
                        verbose_name="Hostname created",
                    ),
                ),
                (
                    "hostname_modified",
                    django_audit_fields.fields.hostname_modification_field.HostnameModificationField(
                        blank=True,
                        help_text="System field. (modified on every save)",
                        max_length=50,
                        verbose_name="Hostname modified",
                    ),
                ),
                (
                    "device_created",
                    models.CharField(blank=True, max_length=10, verbose_name="Device created"),
                ),
                (
                    "device_modified",
                    models.CharField(
                        blank=True, max_length=10, verbose_name="Device modified"
                    ),
                ),
                (
                    "locale_created",
                    models.CharField(
                        blank=True,
                        help_text="Auto-updated by Modeladmin",
                        max_length=10,
                        null=True,
                        verbose_name="Locale created",
                    ),
                ),
                (
                    "locale_modified",
                    models.CharField(
                        blank=True,
                        help_text="Auto-updated by Modeladmin",
                        max_length=10,
                        null=True,
                        verbose_name="Locale modified",
                    ),
                ),
                (
                    "id",
                    django_audit_fields.fields.uuid_auto_field.UUIDAutoField(
                        blank=True,
                        db_index=True,
                        editable=False,
                        help_text="System auto field. UUID primary key.",
                    ),
                ),
                ("consent_model", models.CharField(editable=False, max_length=50, null=True)),
                (
                    "consent_version",
                    models.CharField(editable=False, max_length=10, null=True),
                ),
                (
                    "report_datetime",
                    models.DateTimeField(
                        default=edc_utils.date.get_utcnow,
                        help_text="If reporting today, use today's date/time, otherwise use the date/time this information was reported.",
                        validators=[
                            edc_protocol.validators.datetime_not_before_study_start,
                            edc_model.validators.date.datetime_not_future,
                        ],
                        verbose_name="Report Date",
                    ),
                ),
                (
                    "crf_status",
                    models.CharField(
                        choices=[
                            ("INCOMPLETE", "Incomplete (some data pending)"),
                            ("COMPLETE", "Complete"),
                        ],
                        default=edc_crf.model_mixins.crf_status_model_mixin.get_crf_status_default,
                        help_text="If some data is still pending, flag this CRF as incomplete",
                        max_length=25,
                        verbose_name="CRF status",
                    ),
                ),
                (
                    "crf_status_comments",
                    models.TextField(
                        blank=True,
                        help_text="for example, why some data is still pending",
                        null=True,
                        verbose_name="Any comments related to status of this CRF",
                    ),
                ),
                (
                    "ill_month",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=15,
                        metadata="FILLMONTH1",
                        verbose_name="Other than today’s visit, and thinking about the past 3 months, were you ill or in need of healthcare at any point for HIV, Hypertension, Diabetes or anything related to you having these conditions?",
                    ),
                ),
                (
                    "seek_advice",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        help_text="from a public facility, local pharmacy, traditional doctor, etc",
                        max_length=15,
                        metadata="FSEEK1",
                        verbose_name="Did you seek advice or treatment?",
                    ),
                ),
                (
                    "no_seek_advice",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("not_necessary", "Did not think it was necessary "),
                            ("recovered", "Recovered before I could go "),
                            (
                                "home_remedy",
                                "Home remedy given by family member, relatives, neighbours ",
                            ),
                            ("too_expensive", "Too expensive "),
                            ("no_time", "Wanted to but could not find time"),
                            ("no_transport", "There was no one to take me"),
                            (
                                "facility_too_far",
                                "The health facility is too far/ not easy to reach ",
                            ),
                            (
                                "hcw_unavailable",
                                "Health care practitioner mostly unavailable ",
                            ),
                            ("med_problems", "Taking medicines caused problems"),
                            (
                                "hcw_confusing",
                                "Do not understand what the healthcare practitioner says ",
                            ),
                            (
                                "hcw_incompetent",
                                "Practitioner is not competent in their work ",
                            ),
                            ("OTHER", "Other (specify)"),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=25,
                        metadata="FNOSEEK1",
                        verbose_name="If no, why did you not seek advice or treatment?",
                    ),
                ),
                (
                    "no_seek_advice_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        null=True,
                        verbose_name="If OTHER reason, please explain ...",
                    ),
                ),
                (
                    "seek_facility",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("comm_health_centre", "Community health centre/health post"),
                            ("gov_dispensary", "Government dispensary"),
                            ("phc", "Primary health care center (PHC)"),
                            ("private_clinic", "Private clinic"),
                            ("ngo", "NGO clinic"),
                            ("public_hospital", "Public Hospital"),
                            ("private_hospital", "Private hospital"),
                            ("pharmacy", "Pharmacy"),
                            ("hcw_home", "Any healthcare practitioner’s home"),
                            ("OTHER", "Other (specify)"),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=25,
                        metadata="FSEEKFAC1",
                        verbose_name="If yes, where did you seek advice or treatment?",
                    ),
                ),
                (
                    "seek_facility_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        null=True,
                        verbose_name="If OTHER place, please explain ...",
                    ),
                ),
                (
                    "seek_care_type",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("outpatient", "Outpatient (includes laboratory testing)"),
                            ("inpatient", "Inpatient"),
                            ("both", "Both"),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=25,
                        metadata="FSEEKTYPE1",
                        verbose_name="If yes, what type of care was this?",
                    ),
                ),
                (
                    "seek_outpatient_visits",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        metadata="FOUT1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(1),
                            django.core.validators.MaxValueValidator(10),
                        ],
                        verbose_name="If yes and OUTPATIENT, how many visits in total?",
                    ),
                ),
                (
                    "travel_duration",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FOUTTRATIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="How long did it take you to get there?",
                    ),
                ),
                (
                    "travel_costs",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency",
                        metadata="FOUTTRACOST1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="Thinking about yourself and anyone that accompanied you, how much was spent on travel from your home to your last/most recent visit?",
                    ),
                ),
                (
                    "food_costs",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency",
                        metadata="FOUTFOODCOST1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="Thinking about yourself and anyone that accompanied you, did you have to pay for food, drink or other refreshments during your travel or during your last/most recent visit? (e.g. food, drink, etc.)",
                    ),
                ),
                (
                    "care_costs",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency",
                        metadata="FOUTFEECOST1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="How much money did you spend on healthworker and consultation fees during your last/most recent visit?",
                    ),
                ),
                (
                    "meds_prescribed",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=15,
                        metadata="FOUTMED1",
                        verbose_name="Were you prescribed any medicines during your last/most recent visit?",
                    ),
                ),
                (
                    "med_conditions_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FOUTMEDCONDOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "med_collected",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=25,
                        metadata="FOUTMEDCOLL1",
                        verbose_name="Did you receive/collect these medicines (whether paid or received for free)?",
                    ),
                ),
                (
                    "med_not_collected_reason",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("meds_at_home", "Already had the medicines at home"),
                            ("unavailable", "Medicines were not available"),
                            ("expensive", "Medicines were too expensive"),
                            ("home_remedies", "Home remedies are better"),
                            (
                                "unimportant",
                                "Did not think it was important to get these medicines",
                            ),
                            ("too_busy", "Did not have the time to collect or buy medicines"),
                            ("problematic", "Taking medicines caused problems"),
                            ("OTHER", "Other, please specify ..."),
                        ],
                        max_length=25,
                        metadata="FOUTMEDNO1",
                        verbose_name="Why were these medicines not received/collected?",
                    ),
                ),
                (
                    "med_not_collected_reason_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FOUTMEDNOOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "med_cost_tot",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FOUTMEDCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on these medicines? ",
                    ),
                ),
                (
                    "tests_requested",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        help_text="for example, blood pressure, viral load, glucose etc.",
                        max_length=25,
                        metadata="FOUTTEST1",
                        verbose_name="Did the healthcare worker request for any tests to be done during your last/most recent visit?",
                    ),
                ),
                (
                    "tests_done",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        max_length=25,
                        metadata="FOUTTESTDONE1",
                        verbose_name="Were the tests performed?",
                    ),
                ),
                (
                    "tests_not_done_reason",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("unavailable", "Tests were not available"),
                            ("expensive", "Tests were too expensive"),
                            (
                                "unimportant",
                                "Did not think it was important to do these tests ",
                            ),
                            ("too_busy", "Did not have the time to do these tests"),
                            ("OTHER", "Other, please specify ..."),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=25,
                        metadata="FOUTTESTNO1",
                        verbose_name="Why were the tests not performed?",
                    ),
                ),
                (
                    "tests_not_done_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FOUTTESTNOOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "tests_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FOUTTESTCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much did you spend on these tests?",
                    ),
                ),
                (
                    "facility_duration",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FOUTTIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="Roughly how much time did you spend during your last/most recent visit?",
                    ),
                ),
                (
                    "facility_visit_alt",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            (
                                "paid_work",
                                "Paid work (e.g. full-time employment, small business owners/traders, day jobs, etc.)",
                            ),
                            (
                                "unpaid_work",
                                "Unpaid work (e.g. subsistence farming, housework etc.)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FOUTACTIVITY1",
                        verbose_name="If you were not attending the visit, what would you have been doing?",
                    ),
                ),
                (
                    "alt_lost_income",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency. Ask for cash value or equivalent cash value for in-kind",
                        metadata="FOUTPAID1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="How much would you have made in cash or in-kind for a day’s work?",
                    ),
                ),
                (
                    "accompany_num",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        metadata="FOUTACMPNUM1"
                    ),
                ),
                (
                    "accompany_wait",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        max_length=15,
                        metadata="FOUTACMPWAIT1",
                        verbose_name="Did the people accompanying you wait for you during your last/most recent visit?",
                    ),
                ),
                (
                    "accompany_alt",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        blank=True,
                        choices=[
                            (
                                "paid_work",
                                "Paid work (e.g. full-time employment, small business owners/traders, day jobs, etc.)",
                            ),
                            (
                                "unpaid_work",
                                "Unpaid work (e.g. subsistence farming, housework etc.)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FOUTACMPACT1",
                        null=True,
                        verbose_name="If those accompanying you were not attending your last/most recent visit with you, what would they have been doing?",
                    ),
                ),
                (
                    "accompany_lost_income",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency. Ask for cash value or equivalent cash value for in-kind",
                        metadata="FOUTACMPPAID1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="How much would they have made in cash or in-kind for a day’s work?",
                    ),
                ),
                (
                    "money_sources_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FOUTSOURCEOTHER",
                        null=True,
                        verbose_name="If other 'source of payment', please specify ...",
                    ),
                ),
                (
                    "money_source_main",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("own_savings", "Own saving (e.g. “loose funds”, bank savings)"),
                            (
                                "family_gift",
                                "Loan from family members that does not need to be repaid",
                            ),
                            ("family_loan", "Loan from family member that needs to be repaid"),
                            (
                                "gift_relative",
                                "Loan from relative/neighbour that does not need to be repaid",
                            ),
                            (
                                "loan_relative",
                                "Loan from relative/neighbour that needs to be repaid",
                            ),
                            ("loan_money_lender", "Loan from money lender"),
                            ("loan_bank", "Loan from another source eg bank"),
                            ("community", "Self-help community group"),
                            ("national_insurance", "National health insurance"),
                            ("private_insurance", "Private health insurance"),
                            ("community_insurance", "Community health insurance"),
                            ("waiver", "Government waiver"),
                            (
                                "asset_sale",
                                "Sale of assets (property, livestock, jewellery, household goods, etc)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FOUTSOURCEMAIN1",
                        verbose_name="Of the various sources that you have just mentioned, what was the main source of payment?",
                    ),
                ),
                (
                    "seek_inpatient_visits",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        metadata="FINDAYS1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(1),
                            django.core.validators.MaxValueValidator(10),
                        ],
                        verbose_name="How many days in total were you admitted as an INPATIENT?",
                    ),
                ),
                (
                    "inpatient_reasons_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FINDAYSCOND1",
                        null=True,
                        verbose_name="If other 'INPATIENT care' reason, please specify ...",
                    ),
                ),
                (
                    "inpatient_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FINCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent in total on your hospital stay?",
                    ),
                ),
                (
                    "inpatient_accompany",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        help_text="for example: guesthouse, hotel, friend or relative’s house",
                        max_length=15,
                        metadata="FINACMP1",
                        verbose_name="Did anyone stay with you at the facility or somewhere else at night?",
                    ),
                ),
                (
                    "inpatient_food",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("Yes", "Yes"),
                            ("No", "No"),
                            ("dont_know", "Don't know"),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=15,
                        metadata="FINFOOD1",
                        verbose_name="When you were first admitted to the facility, was any food and drink bought for people who accompanied you?",
                    ),
                ),
                (
                    "inpatient_food_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FINFOODCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on this food and drink?",
                    ),
                ),
                (
                    "inpatient_nowork_days",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        metadata="FINWRKMISS1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(90),
                        ],
                        verbose_name="When you were ill, how many days were you not able to go to work?",
                    ),
                ),
                (
                    "inpatient_accompany_nowork",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        max_length=15,
                        metadata="FINOWRKMISS1",
                        verbose_name="Apart from the person that accompanied you, was there anyone else in your household who could not go to work because of your illness?",
                    ),
                ),
                (
                    "inpatient_accompany_nowork_days",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        metadata="FINODAYSMISS1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(90),
                        ],
                        verbose_name="How many days did they not go to work?",
                    ),
                ),
                (
                    "inpatient_money_sources_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FINSOURCEOTHER",
                        null=True,
                        verbose_name="If other 'source of payment', please specify ...",
                    ),
                ),
                (
                    "inpatient_money_sources_main_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FINSOURCEMAIN1OTHER",
                        null=True,
                        verbose_name="If other main 'source of payment', please specify ...",
                    ),
                ),
                (
                    "history_id",
                    models.UUIDField(
                        default=uuid.uuid4, editable=False, primary_key=True, serialize=False
                    ),
                ),
                ("history_date", models.DateTimeField(db_index=True)),
                ("history_change_reason", models.CharField(max_length=100, null=True)),
                (
                    "history_type",
                    models.CharField(
                        choices=[("+", "Created"), ("~", "Changed"), ("-", "Deleted")],
                        max_length=1,
                    ),
                ),
                (
                    "history_user",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="+",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "site",
                    models.ForeignKey(
                        blank=True,
                        db_constraint=False,
                        null=True,
                        on_delete=django.db.models.deletion.DO_NOTHING,
                        related_name="+",
                        to="sites.site",
                    ),
                ),
                (
                    "subject_visit",
                    models.ForeignKey(
                        blank=True,
                        db_constraint=False,
                        null=True,
                        on_delete=django.db.models.deletion.DO_NOTHING,
                        related_name="+",
                        to="intecomm_subject.subjectvisit",
                    ),
                ),
            ],
            options={
                "verbose_name": "historical Cost of Careseeking: Part B",
                "verbose_name_plural": "historical Cost of Careseeking: Part B",
                "ordering": ("-history_date", "-history_id"),
                "get_latest_by": ("history_date", "history_id"),
            },
            bases=(simple_history.models.HistoricalChanges, models.Model),
        ),
        migrations.CreateModel(
            name="HistoricalCareseekingA",
            fields=[
                (
                    "revision",
                    django_revision.revision_field.RevisionField(
                        blank=True,
                        editable=False,
                        help_text="System field. Git repository tag:branch:commit.",
                        max_length=75,
                        null=True,
                        verbose_name="Revision",
                    ),
                ),
                (
                    "created",
                    models.DateTimeField(
                        blank=True, default=django_audit_fields.models.audit_model_mixin.utcnow
                    ),
                ),
                (
                    "modified",
                    models.DateTimeField(
                        blank=True, default=django_audit_fields.models.audit_model_mixin.utcnow
                    ),
                ),
                (
                    "user_created",
                    django_audit_fields.fields.userfield.UserField(
                        blank=True,
                        help_text="Updated by admin.save_model",
                        max_length=50,
                        verbose_name="user created",
                    ),
                ),
                (
                    "user_modified",
                    django_audit_fields.fields.userfield.UserField(
                        blank=True,
                        help_text="Updated by admin.save_model",
                        max_length=50,
                        verbose_name="user modified",
                    ),
                ),
                (
                    "hostname_created",
                    models.CharField(
                        blank=True,
                        default=_socket.gethostname,
                        help_text="System field. (modified on create only)",
                        max_length=60,
                        verbose_name="Hostname created",
                    ),
                ),
                (
                    "hostname_modified",
                    django_audit_fields.fields.hostname_modification_field.HostnameModificationField(
                        blank=True,
                        help_text="System field. (modified on every save)",
                        max_length=50,
                        verbose_name="Hostname modified",
                    ),
                ),
                (
                    "device_created",
                    models.CharField(blank=True, max_length=10, verbose_name="Device created"),
                ),
                (
                    "device_modified",
                    models.CharField(
                        blank=True, max_length=10, verbose_name="Device modified"
                    ),
                ),
                (
                    "locale_created",
                    models.CharField(
                        blank=True,
                        help_text="Auto-updated by Modeladmin",
                        max_length=10,
                        null=True,
                        verbose_name="Locale created",
                    ),
                ),
                (
                    "locale_modified",
                    models.CharField(
                        blank=True,
                        help_text="Auto-updated by Modeladmin",
                        max_length=10,
                        null=True,
                        verbose_name="Locale modified",
                    ),
                ),
                (
                    "id",
                    django_audit_fields.fields.uuid_auto_field.UUIDAutoField(
                        blank=True,
                        db_index=True,
                        editable=False,
                        help_text="System auto field. UUID primary key.",
                    ),
                ),
                ("consent_model", models.CharField(editable=False, max_length=50, null=True)),
                (
                    "consent_version",
                    models.CharField(editable=False, max_length=10, null=True),
                ),
                (
                    "report_datetime",
                    models.DateTimeField(
                        default=edc_utils.date.get_utcnow,
                        help_text="If reporting today, use today's date/time, otherwise use the date/time this information was reported.",
                        validators=[
                            edc_protocol.validators.datetime_not_before_study_start,
                            edc_model.validators.date.datetime_not_future,
                        ],
                        verbose_name="Report Date",
                    ),
                ),
                (
                    "crf_status",
                    models.CharField(
                        choices=[
                            ("INCOMPLETE", "Incomplete (some data pending)"),
                            ("COMPLETE", "Complete"),
                        ],
                        default=edc_crf.model_mixins.crf_status_model_mixin.get_crf_status_default,
                        help_text="If some data is still pending, flag this CRF as incomplete",
                        max_length=25,
                        verbose_name="CRF status",
                    ),
                ),
                (
                    "crf_status_comments",
                    models.TextField(
                        blank=True,
                        help_text="for example, why some data is still pending",
                        null=True,
                        verbose_name="Any comments related to status of this CRF",
                    ),
                ),
                (
                    "travel_time",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FTRATIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="How long did it take you to reach here?",
                    ),
                ),
                (
                    "travel_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="in local currency",
                        metadata="FTRAVCOST1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(1),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="Thinking about yourself and anyone that accompanied you, how much was spent on travel from your home to reach here?",
                    ),
                ),
                (
                    "food_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="in local currency",
                        metadata="FFOODCOST1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="Thinking about yourself and anyone that accompanied you, how much did you have to pay for food, drink or other refreshments during your travel or during your visit? (e.g. food, drink, etc.)",
                    ),
                ),
                (
                    "visit_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FFEECOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much money did you spend on healthworker and consultation fees during this visit?",
                    ),
                ),
                (
                    "med_prescribed",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=25,
                        metadata="FMED1",
                        verbose_name="Were you prescribed any medicines during this visit?",
                    ),
                ),
                (
                    "med_conditions_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FMEDCONDOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "med_collected",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=25,
                        metadata="FMEDCOLL1",
                        verbose_name="Did you receive/collect these medicines (whether paid or received for free)?",
                    ),
                ),
                (
                    "med_not_collected_reason",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("meds_at_home", "Already had the medicines at home"),
                            ("unavailable", "Medicines were not available"),
                            ("expensive", "Medicines were too expensive"),
                            ("home_remedies", "Home remedies are better"),
                            (
                                "unimportant",
                                "Did not think it was important to get these medicines",
                            ),
                            ("too_busy", "Did not have the time to collect or buy medicines"),
                            ("problematic", "Taking medicines caused problems"),
                            ("OTHER", "Other, please specify ..."),
                        ],
                        max_length=25,
                        metadata="FMED1",
                        verbose_name="Why were these medicines not received/collected?",
                    ),
                ),
                (
                    "med_not_collected_reason_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FMEDOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "med_cost_tot",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FMEDCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on these medicines? ",
                    ),
                ),
                (
                    "med_cost_hiv",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="Leave blank if not applicable. In local currency",
                        metadata="FMEDCOSTHIV1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on HIV medicines? ",
                    ),
                ),
                (
                    "med_cost_htn",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="Leave blank if not applicable. In local currency",
                        metadata="FMEDCOSTHTN1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on Hypertension medicines? ",
                    ),
                ),
                (
                    "med_cost_dm",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="Leave blank if not applicable. In local currency",
                        metadata="FMEDCOSTDM1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on Diabetes medicines? ",
                    ),
                ),
                (
                    "med_cost_other",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="Leave blank if not applicable. In local currency",
                        metadata="FMEDCOSTOTHER1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on OTHER medicines? ",
                    ),
                ),
                (
                    "tests_requested",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=25,
                        metadata="FTEST1",
                        verbose_name="Did the healthcare worker request for any tests to be done during this visit?",
                    ),
                ),
                (
                    "tests_done",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        max_length=25,
                        metadata="FTESTDONE1",
                        verbose_name="Were the tests performed?",
                    ),
                ),
                (
                    "tests_not_done_reason",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("unavailable", "Tests were not available"),
                            ("expensive", "Tests were too expensive"),
                            (
                                "unimportant",
                                "Did not think it was important to do these tests ",
                            ),
                            ("too_busy", "Did not have the time to do these tests"),
                            ("OTHER", "Other, please specify ..."),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=25,
                        metadata="FTESTNO1",
                        verbose_name="Why were the tests not performed?",
                    ),
                ),
                (
                    "tests_not_done_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FTESTNOOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "tests_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FTESTCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much did you spend on these tests?",
                    ),
                ),
                (
                    "facility_duration",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FFACTIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="How much time did you spend during your visit today -- from arrival to this place until the end of your visit?",
                    ),
                ),
                (
                    "wait_duration",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FWAITIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="How much time did you spend waiting?",
                    ),
                ),
                (
                    "hworker_duration",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FWORKTIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="How much time did you spend with the healthcare worker?",
                    ),
                ),
                (
                    "facility_visit_alt",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            (
                                "paid_work",
                                "Paid work (e.g. full-time employment, small business owners/traders, day jobs, etc.)",
                            ),
                            (
                                "unpaid_work",
                                "Unpaid work (e.g. subsistence farming, housework etc.)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FACTIVITY1",
                        verbose_name="If you were not attending the visit today, what would you have been doing?",
                    ),
                ),
                (
                    "alt_lost_income",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency. Ask for cash value or equivalent cash value for in-kind",
                        metadata="FPAID1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="How much would you have made in cash or in-kind for a day’s work?",
                    ),
                ),
                (
                    "referral",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=15,
                        metadata="FREFER1",
                        verbose_name="As a result of your visit today, have you been referred for further care?",
                    ),
                ),
                (
                    "referral_type",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("inpatient", "Inpatient"),
                            ("outpatient", "Outpatient (includes laboratory testing)"),
                        ],
                        max_length=25,
                        metadata="FREFTYPE1",
                        verbose_name="Is this for inpatient or outpatient care?",
                    ),
                ),
                (
                    "referral_facility",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("public_clinic", "Public facility below tertiary level"),
                            ("private_clinic", "Private clinic"),
                            ("private_dx_facility", "Private diagnostic facility"),
                            ("ngo_clinic", "NGO clinic"),
                            ("public_hospital", "Public Hospital/tertiary facility"),
                            ("private_hospital", "Private hospital"),
                            ("pharmacy", "Pharmacy"),
                        ],
                        max_length=25,
                        metadata="FREFAC1",
                        verbose_name="What type of facility have you been referred to?",
                    ),
                ),
                (
                    "accompany_num",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        metadata="FACMP1"
                    ),
                ),
                (
                    "accompany_wait",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        max_length=15,
                        metadata="FACMPWAIT1",
                        verbose_name="Did the people accompanying you wait for you during the visit?",
                    ),
                ),
                (
                    "accompany_alt",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        blank=True,
                        choices=[
                            (
                                "paid_work",
                                "Paid work (e.g. full-time employment, small business owners/traders, day jobs, etc.)",
                            ),
                            (
                                "unpaid_work",
                                "Unpaid work (e.g. subsistence farming, housework etc.)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FACMPACT1",
                        null=True,
                        verbose_name="If those accompanying you were not attending the visit with you today, what would they have been doing?",
                    ),
                ),
                (
                    "accompany_lost_income",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency. Ask for cash value or equivalent cash value for in-kind",
                        metadata="FACMP1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="How much would they have made in cash or in-kind for a day’s work?",
                    ),
                ),
                (
                    "money_sources_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FTODSOURCEOTHER",
                        null=True,
                        verbose_name="If other 'source of payment', please specify ...",
                    ),
                ),
                (
                    "money_source_main",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("own_savings", "Own saving (e.g. “loose funds”, bank savings)"),
                            (
                                "family_gift",
                                "Loan from family members that does not need to be repaid",
                            ),
                            ("family_loan", "Loan from family member that needs to be repaid"),
                            (
                                "gift_relative",
                                "Loan from relative/neighbour that does not need to be repaid",
                            ),
                            (
                                "loan_relative",
                                "Loan from relative/neighbour that needs to be repaid",
                            ),
                            ("loan_money_lender", "Loan from money lender"),
                            ("loan_bank", "Loan from another source eg bank"),
                            ("community", "Self-help community group"),
                            ("national_insurance", "National health insurance"),
                            ("private_insurance", "Private health insurance"),
                            ("community_insurance", "Community health insurance"),
                            ("waiver", "Government waiver"),
                            (
                                "asset_sale",
                                "Sale of assets (property, livestock, jewellery, household goods, etc)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FTODSOURCEMAIN1",
                        verbose_name="Of the various sources that you have just mentioned, what was the main source of payment?",
                    ),
                ),
                (
                    "money_source_main_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        null=True,
                        verbose_name="If other main 'source of payment', please specify ...",
                    ),
                ),
                (
                    "history_id",
                    models.UUIDField(
                        default=uuid.uuid4, editable=False, primary_key=True, serialize=False
                    ),
                ),
                ("history_date", models.DateTimeField(db_index=True)),
                ("history_change_reason", models.CharField(max_length=100, null=True)),
                (
                    "history_type",
                    models.CharField(
                        choices=[("+", "Created"), ("~", "Changed"), ("-", "Deleted")],
                        max_length=1,
                    ),
                ),
                (
                    "history_user",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="+",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "site",
                    models.ForeignKey(
                        blank=True,
                        db_constraint=False,
                        null=True,
                        on_delete=django.db.models.deletion.DO_NOTHING,
                        related_name="+",
                        to="sites.site",
                    ),
                ),
                (
                    "subject_visit",
                    models.ForeignKey(
                        blank=True,
                        db_constraint=False,
                        null=True,
                        on_delete=django.db.models.deletion.DO_NOTHING,
                        related_name="+",
                        to="intecomm_subject.subjectvisit",
                    ),
                ),
            ],
            options={
                "verbose_name": "historical Cost of Careseeking: Part A",
                "verbose_name_plural": "historical Cost of Careseeking: Part A",
                "ordering": ("-history_date", "-history_id"),
                "get_latest_by": ("history_date", "history_id"),
            },
            bases=(simple_history.models.HistoricalChanges, models.Model),
        ),
        migrations.CreateModel(
            name="CareseekingB",
            fields=[
                (
                    "revision",
                    django_revision.revision_field.RevisionField(
                        blank=True,
                        editable=False,
                        help_text="System field. Git repository tag:branch:commit.",
                        max_length=75,
                        null=True,
                        verbose_name="Revision",
                    ),
                ),
                (
                    "created",
                    models.DateTimeField(
                        blank=True, default=django_audit_fields.models.audit_model_mixin.utcnow
                    ),
                ),
                (
                    "modified",
                    models.DateTimeField(
                        blank=True, default=django_audit_fields.models.audit_model_mixin.utcnow
                    ),
                ),
                (
                    "user_created",
                    django_audit_fields.fields.userfield.UserField(
                        blank=True,
                        help_text="Updated by admin.save_model",
                        max_length=50,
                        verbose_name="user created",
                    ),
                ),
                (
                    "user_modified",
                    django_audit_fields.fields.userfield.UserField(
                        blank=True,
                        help_text="Updated by admin.save_model",
                        max_length=50,
                        verbose_name="user modified",
                    ),
                ),
                (
                    "hostname_created",
                    models.CharField(
                        blank=True,
                        default=_socket.gethostname,
                        help_text="System field. (modified on create only)",
                        max_length=60,
                        verbose_name="Hostname created",
                    ),
                ),
                (
                    "hostname_modified",
                    django_audit_fields.fields.hostname_modification_field.HostnameModificationField(
                        blank=True,
                        help_text="System field. (modified on every save)",
                        max_length=50,
                        verbose_name="Hostname modified",
                    ),
                ),
                (
                    "device_created",
                    models.CharField(blank=True, max_length=10, verbose_name="Device created"),
                ),
                (
                    "device_modified",
                    models.CharField(
                        blank=True, max_length=10, verbose_name="Device modified"
                    ),
                ),
                (
                    "locale_created",
                    models.CharField(
                        blank=True,
                        help_text="Auto-updated by Modeladmin",
                        max_length=10,
                        null=True,
                        verbose_name="Locale created",
                    ),
                ),
                (
                    "locale_modified",
                    models.CharField(
                        blank=True,
                        help_text="Auto-updated by Modeladmin",
                        max_length=10,
                        null=True,
                        verbose_name="Locale modified",
                    ),
                ),
                (
                    "id",
                    django_audit_fields.fields.uuid_auto_field.UUIDAutoField(
                        blank=True,
                        editable=False,
                        help_text="System auto field. UUID primary key.",
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("consent_model", models.CharField(editable=False, max_length=50, null=True)),
                (
                    "consent_version",
                    models.CharField(editable=False, max_length=10, null=True),
                ),
                (
                    "report_datetime",
                    models.DateTimeField(
                        default=edc_utils.date.get_utcnow,
                        help_text="If reporting today, use today's date/time, otherwise use the date/time this information was reported.",
                        validators=[
                            edc_protocol.validators.datetime_not_before_study_start,
                            edc_model.validators.date.datetime_not_future,
                        ],
                        verbose_name="Report Date",
                    ),
                ),
                (
                    "crf_status",
                    models.CharField(
                        choices=[
                            ("INCOMPLETE", "Incomplete (some data pending)"),
                            ("COMPLETE", "Complete"),
                        ],
                        default=edc_crf.model_mixins.crf_status_model_mixin.get_crf_status_default,
                        help_text="If some data is still pending, flag this CRF as incomplete",
                        max_length=25,
                        verbose_name="CRF status",
                    ),
                ),
                (
                    "crf_status_comments",
                    models.TextField(
                        blank=True,
                        help_text="for example, why some data is still pending",
                        null=True,
                        verbose_name="Any comments related to status of this CRF",
                    ),
                ),
                (
                    "ill_month",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=15,
                        metadata="FILLMONTH1",
                        verbose_name="Other than today’s visit, and thinking about the past 3 months, were you ill or in need of healthcare at any point for HIV, Hypertension, Diabetes or anything related to you having these conditions?",
                    ),
                ),
                (
                    "seek_advice",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        help_text="from a public facility, local pharmacy, traditional doctor, etc",
                        max_length=15,
                        metadata="FSEEK1",
                        verbose_name="Did you seek advice or treatment?",
                    ),
                ),
                (
                    "no_seek_advice",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("not_necessary", "Did not think it was necessary "),
                            ("recovered", "Recovered before I could go "),
                            (
                                "home_remedy",
                                "Home remedy given by family member, relatives, neighbours ",
                            ),
                            ("too_expensive", "Too expensive "),
                            ("no_time", "Wanted to but could not find time"),
                            ("no_transport", "There was no one to take me"),
                            (
                                "facility_too_far",
                                "The health facility is too far/ not easy to reach ",
                            ),
                            (
                                "hcw_unavailable",
                                "Health care practitioner mostly unavailable ",
                            ),
                            ("med_problems", "Taking medicines caused problems"),
                            (
                                "hcw_confusing",
                                "Do not understand what the healthcare practitioner says ",
                            ),
                            (
                                "hcw_incompetent",
                                "Practitioner is not competent in their work ",
                            ),
                            ("OTHER", "Other (specify)"),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=25,
                        metadata="FNOSEEK1",
                        verbose_name="If no, why did you not seek advice or treatment?",
                    ),
                ),
                (
                    "no_seek_advice_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        null=True,
                        verbose_name="If OTHER reason, please explain ...",
                    ),
                ),
                (
                    "seek_facility",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("comm_health_centre", "Community health centre/health post"),
                            ("gov_dispensary", "Government dispensary"),
                            ("phc", "Primary health care center (PHC)"),
                            ("private_clinic", "Private clinic"),
                            ("ngo", "NGO clinic"),
                            ("public_hospital", "Public Hospital"),
                            ("private_hospital", "Private hospital"),
                            ("pharmacy", "Pharmacy"),
                            ("hcw_home", "Any healthcare practitioner’s home"),
                            ("OTHER", "Other (specify)"),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=25,
                        metadata="FSEEKFAC1",
                        verbose_name="If yes, where did you seek advice or treatment?",
                    ),
                ),
                (
                    "seek_facility_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        null=True,
                        verbose_name="If OTHER place, please explain ...",
                    ),
                ),
                (
                    "seek_care_type",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("outpatient", "Outpatient (includes laboratory testing)"),
                            ("inpatient", "Inpatient"),
                            ("both", "Both"),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=25,
                        metadata="FSEEKTYPE1",
                        verbose_name="If yes, what type of care was this?",
                    ),
                ),
                (
                    "seek_outpatient_visits",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        metadata="FOUT1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(1),
                            django.core.validators.MaxValueValidator(10),
                        ],
                        verbose_name="If yes and OUTPATIENT, how many visits in total?",
                    ),
                ),
                (
                    "travel_duration",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FOUTTRATIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="How long did it take you to get there?",
                    ),
                ),
                (
                    "travel_costs",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency",
                        metadata="FOUTTRACOST1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="Thinking about yourself and anyone that accompanied you, how much was spent on travel from your home to your last/most recent visit?",
                    ),
                ),
                (
                    "food_costs",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency",
                        metadata="FOUTFOODCOST1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="Thinking about yourself and anyone that accompanied you, did you have to pay for food, drink or other refreshments during your travel or during your last/most recent visit? (e.g. food, drink, etc.)",
                    ),
                ),
                (
                    "care_costs",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency",
                        metadata="FOUTFEECOST1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="How much money did you spend on healthworker and consultation fees during your last/most recent visit?",
                    ),
                ),
                (
                    "meds_prescribed",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=15,
                        metadata="FOUTMED1",
                        verbose_name="Were you prescribed any medicines during your last/most recent visit?",
                    ),
                ),
                (
                    "med_conditions_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FOUTMEDCONDOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "med_collected",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=25,
                        metadata="FOUTMEDCOLL1",
                        verbose_name="Did you receive/collect these medicines (whether paid or received for free)?",
                    ),
                ),
                (
                    "med_not_collected_reason",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("meds_at_home", "Already had the medicines at home"),
                            ("unavailable", "Medicines were not available"),
                            ("expensive", "Medicines were too expensive"),
                            ("home_remedies", "Home remedies are better"),
                            (
                                "unimportant",
                                "Did not think it was important to get these medicines",
                            ),
                            ("too_busy", "Did not have the time to collect or buy medicines"),
                            ("problematic", "Taking medicines caused problems"),
                            ("OTHER", "Other, please specify ..."),
                        ],
                        max_length=25,
                        metadata="FOUTMEDNO1",
                        verbose_name="Why were these medicines not received/collected?",
                    ),
                ),
                (
                    "med_not_collected_reason_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FOUTMEDNOOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "med_cost_tot",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FOUTMEDCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on these medicines? ",
                    ),
                ),
                (
                    "tests_requested",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        help_text="for example, blood pressure, viral load, glucose etc.",
                        max_length=25,
                        metadata="FOUTTEST1",
                        verbose_name="Did the healthcare worker request for any tests to be done during your last/most recent visit?",
                    ),
                ),
                (
                    "tests_done",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        max_length=25,
                        metadata="FOUTTESTDONE1",
                        verbose_name="Were the tests performed?",
                    ),
                ),
                (
                    "tests_not_done_reason",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("unavailable", "Tests were not available"),
                            ("expensive", "Tests were too expensive"),
                            (
                                "unimportant",
                                "Did not think it was important to do these tests ",
                            ),
                            ("too_busy", "Did not have the time to do these tests"),
                            ("OTHER", "Other, please specify ..."),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=25,
                        metadata="FOUTTESTNO1",
                        verbose_name="Why were the tests not performed?",
                    ),
                ),
                (
                    "tests_not_done_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FOUTTESTNOOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "tests_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FOUTTESTCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much did you spend on these tests?",
                    ),
                ),
                (
                    "facility_duration",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FOUTTIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="Roughly how much time did you spend during your last/most recent visit?",
                    ),
                ),
                (
                    "facility_visit_alt",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            (
                                "paid_work",
                                "Paid work (e.g. full-time employment, small business owners/traders, day jobs, etc.)",
                            ),
                            (
                                "unpaid_work",
                                "Unpaid work (e.g. subsistence farming, housework etc.)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FOUTACTIVITY1",
                        verbose_name="If you were not attending the visit, what would you have been doing?",
                    ),
                ),
                (
                    "alt_lost_income",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency. Ask for cash value or equivalent cash value for in-kind",
                        metadata="FOUTPAID1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="How much would you have made in cash or in-kind for a day’s work?",
                    ),
                ),
                (
                    "accompany_num",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        metadata="FOUTACMPNUM1"
                    ),
                ),
                (
                    "accompany_wait",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        max_length=15,
                        metadata="FOUTACMPWAIT1",
                        verbose_name="Did the people accompanying you wait for you during your last/most recent visit?",
                    ),
                ),
                (
                    "accompany_alt",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        blank=True,
                        choices=[
                            (
                                "paid_work",
                                "Paid work (e.g. full-time employment, small business owners/traders, day jobs, etc.)",
                            ),
                            (
                                "unpaid_work",
                                "Unpaid work (e.g. subsistence farming, housework etc.)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FOUTACMPACT1",
                        null=True,
                        verbose_name="If those accompanying you were not attending your last/most recent visit with you, what would they have been doing?",
                    ),
                ),
                (
                    "accompany_lost_income",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency. Ask for cash value or equivalent cash value for in-kind",
                        metadata="FOUTACMPPAID1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="How much would they have made in cash or in-kind for a day’s work?",
                    ),
                ),
                (
                    "money_sources_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FOUTSOURCEOTHER",
                        null=True,
                        verbose_name="If other 'source of payment', please specify ...",
                    ),
                ),
                (
                    "money_source_main",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("own_savings", "Own saving (e.g. “loose funds”, bank savings)"),
                            (
                                "family_gift",
                                "Loan from family members that does not need to be repaid",
                            ),
                            ("family_loan", "Loan from family member that needs to be repaid"),
                            (
                                "gift_relative",
                                "Loan from relative/neighbour that does not need to be repaid",
                            ),
                            (
                                "loan_relative",
                                "Loan from relative/neighbour that needs to be repaid",
                            ),
                            ("loan_money_lender", "Loan from money lender"),
                            ("loan_bank", "Loan from another source eg bank"),
                            ("community", "Self-help community group"),
                            ("national_insurance", "National health insurance"),
                            ("private_insurance", "Private health insurance"),
                            ("community_insurance", "Community health insurance"),
                            ("waiver", "Government waiver"),
                            (
                                "asset_sale",
                                "Sale of assets (property, livestock, jewellery, household goods, etc)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FOUTSOURCEMAIN1",
                        verbose_name="Of the various sources that you have just mentioned, what was the main source of payment?",
                    ),
                ),
                (
                    "seek_inpatient_visits",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        metadata="FINDAYS1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(1),
                            django.core.validators.MaxValueValidator(10),
                        ],
                        verbose_name="How many days in total were you admitted as an INPATIENT?",
                    ),
                ),
                (
                    "inpatient_reasons_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FINDAYSCOND1",
                        null=True,
                        verbose_name="If other 'INPATIENT care' reason, please specify ...",
                    ),
                ),
                (
                    "inpatient_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FINCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent in total on your hospital stay?",
                    ),
                ),
                (
                    "inpatient_accompany",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        help_text="for example: guesthouse, hotel, friend or relative’s house",
                        max_length=15,
                        metadata="FINACMP1",
                        verbose_name="Did anyone stay with you at the facility or somewhere else at night?",
                    ),
                ),
                (
                    "inpatient_food",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("Yes", "Yes"),
                            ("No", "No"),
                            ("dont_know", "Don't know"),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=15,
                        metadata="FINFOOD1",
                        verbose_name="When you were first admitted to the facility, was any food and drink bought for people who accompanied you?",
                    ),
                ),
                (
                    "inpatient_food_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FINFOODCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on this food and drink?",
                    ),
                ),
                (
                    "inpatient_nowork_days",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        metadata="FINWRKMISS1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(90),
                        ],
                        verbose_name="When you were ill, how many days were you not able to go to work?",
                    ),
                ),
                (
                    "inpatient_accompany_nowork",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        max_length=15,
                        metadata="FINOWRKMISS1",
                        verbose_name="Apart from the person that accompanied you, was there anyone else in your household who could not go to work because of your illness?",
                    ),
                ),
                (
                    "inpatient_accompany_nowork_days",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        metadata="FINODAYSMISS1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(90),
                        ],
                        verbose_name="How many days did they not go to work?",
                    ),
                ),
                (
                    "inpatient_money_sources_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FINSOURCEOTHER",
                        null=True,
                        verbose_name="If other 'source of payment', please specify ...",
                    ),
                ),
                (
                    "inpatient_money_sources_main_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FINSOURCEMAIN1OTHER",
                        null=True,
                        verbose_name="If other main 'source of payment', please specify ...",
                    ),
                ),
                (
                    "accompany",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        metadata="FOUTACMP1",
                        to="intecomm_lists.accompanied",
                        verbose_name="Who accompanied you to your last/most recent visit?",
                    ),
                ),
                (
                    "inpatient_money_sources",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        help_text="Select up to three sources. If ‘other’, please specify.",
                        metadata="FINSOURCE",
                        related_name="%(app_label)s_inpatient_money_sources_related",
                        related_query_name="%(app_label)s_inpatient_money_sources",
                        to="intecomm_lists.moneysources",
                        verbose_name="What were the source(s) of payment for all these expenses for your hospital stay?",
                    ),
                ),
                (
                    "inpatient_money_sources_main",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        metadata="FINSOURCEMAIN1",
                        related_name="%(app_label)s_inpatient_money_sources_main_related",
                        related_query_name="%(app_label)s_inpatient_money_main_sources",
                        to="intecomm_lists.moneysources",
                        verbose_name="Of the various sources that you have just mentioned, what was the main source of payment?",
                    ),
                ),
                (
                    "inpatient_reasons",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        metadata="FINDAYSCOND1",
                        related_name="%(app_label)s_inpatient_reasons_related",
                        related_query_name="%(app_label)s_inpatient_reasons_sources",
                        to="intecomm_lists.conditions",
                        verbose_name="What was this INPATIENT care for?",
                    ),
                ),
                (
                    "med_conditions",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        metadata="FOUTMEDCOND1",
                        related_name="%(app_label)s_med_conditions_related",
                        related_query_name="%(app_label)s_med_conditions_sources",
                        to="intecomm_lists.conditions",
                        verbose_name="What were the medicines were for?",
                    ),
                ),
                (
                    "money_sources",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        help_text="Select up to three sources. If ‘other’, please specify.",
                        metadata="FOUTSOURCE",
                        related_name="%(app_label)s_money_sources_related",
                        related_query_name="%(app_label)s_money_sources",
                        to="intecomm_lists.moneysources",
                        verbose_name="Thinking about the expenses you have reported in the past 3 months, and excluding today’s visit, what were the source(s) of payment for all these expenses?  ",
                    ),
                ),
                (
                    "site",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.PROTECT,
                        related_name="+",
                        to="sites.site",
                    ),
                ),
                (
                    "subject_visit",
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.PROTECT,
                        to="intecomm_subject.subjectvisit",
                    ),
                ),
                (
                    "travel_method",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        metadata="FOUTTRA1",
                        to="intecomm_lists.travelmethods",
                        verbose_name="Thinking about your last/most recent visit, how did you travel to the visit?",
                    ),
                ),
            ],
            options={
                "verbose_name": "Cost of Careseeking: Part B",
                "verbose_name_plural": "Cost of Careseeking: Part B",
                "abstract": False,
                "default_permissions": ("add", "change", "delete", "view", "export", "import"),
                "default_manager_name": "objects",
                "indexes": [
                    models.Index(
                        fields=["subject_visit", "site"], name="intecomm_su_subject_32358d_idx"
                    ),
                    models.Index(
                        fields=["subject_visit", "report_datetime"],
                        name="intecomm_su_subject_e2199b_idx",
                    ),
                    models.Index(
                        fields=["modified", "created"], name="intecomm_su_modifie_aeb7ec_idx"
                    ),
                    models.Index(
                        fields=["user_modified", "user_created"],
                        name="intecomm_su_user_mo_d58010_idx",
                    ),
                ],
            },
            managers=[
                ("objects", edc_visit_tracking.managers.CrfModelManager()),
                ("on_site", edc_visit_tracking.managers.CrfCurrentSiteManager()),
            ],
        ),
        migrations.CreateModel(
            name="CareseekingA",
            fields=[
                (
                    "revision",
                    django_revision.revision_field.RevisionField(
                        blank=True,
                        editable=False,
                        help_text="System field. Git repository tag:branch:commit.",
                        max_length=75,
                        null=True,
                        verbose_name="Revision",
                    ),
                ),
                (
                    "created",
                    models.DateTimeField(
                        blank=True, default=django_audit_fields.models.audit_model_mixin.utcnow
                    ),
                ),
                (
                    "modified",
                    models.DateTimeField(
                        blank=True, default=django_audit_fields.models.audit_model_mixin.utcnow
                    ),
                ),
                (
                    "user_created",
                    django_audit_fields.fields.userfield.UserField(
                        blank=True,
                        help_text="Updated by admin.save_model",
                        max_length=50,
                        verbose_name="user created",
                    ),
                ),
                (
                    "user_modified",
                    django_audit_fields.fields.userfield.UserField(
                        blank=True,
                        help_text="Updated by admin.save_model",
                        max_length=50,
                        verbose_name="user modified",
                    ),
                ),
                (
                    "hostname_created",
                    models.CharField(
                        blank=True,
                        default=_socket.gethostname,
                        help_text="System field. (modified on create only)",
                        max_length=60,
                        verbose_name="Hostname created",
                    ),
                ),
                (
                    "hostname_modified",
                    django_audit_fields.fields.hostname_modification_field.HostnameModificationField(
                        blank=True,
                        help_text="System field. (modified on every save)",
                        max_length=50,
                        verbose_name="Hostname modified",
                    ),
                ),
                (
                    "device_created",
                    models.CharField(blank=True, max_length=10, verbose_name="Device created"),
                ),
                (
                    "device_modified",
                    models.CharField(
                        blank=True, max_length=10, verbose_name="Device modified"
                    ),
                ),
                (
                    "locale_created",
                    models.CharField(
                        blank=True,
                        help_text="Auto-updated by Modeladmin",
                        max_length=10,
                        null=True,
                        verbose_name="Locale created",
                    ),
                ),
                (
                    "locale_modified",
                    models.CharField(
                        blank=True,
                        help_text="Auto-updated by Modeladmin",
                        max_length=10,
                        null=True,
                        verbose_name="Locale modified",
                    ),
                ),
                (
                    "id",
                    django_audit_fields.fields.uuid_auto_field.UUIDAutoField(
                        blank=True,
                        editable=False,
                        help_text="System auto field. UUID primary key.",
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("consent_model", models.CharField(editable=False, max_length=50, null=True)),
                (
                    "consent_version",
                    models.CharField(editable=False, max_length=10, null=True),
                ),
                (
                    "report_datetime",
                    models.DateTimeField(
                        default=edc_utils.date.get_utcnow,
                        help_text="If reporting today, use today's date/time, otherwise use the date/time this information was reported.",
                        validators=[
                            edc_protocol.validators.datetime_not_before_study_start,
                            edc_model.validators.date.datetime_not_future,
                        ],
                        verbose_name="Report Date",
                    ),
                ),
                (
                    "crf_status",
                    models.CharField(
                        choices=[
                            ("INCOMPLETE", "Incomplete (some data pending)"),
                            ("COMPLETE", "Complete"),
                        ],
                        default=edc_crf.model_mixins.crf_status_model_mixin.get_crf_status_default,
                        help_text="If some data is still pending, flag this CRF as incomplete",
                        max_length=25,
                        verbose_name="CRF status",
                    ),
                ),
                (
                    "crf_status_comments",
                    models.TextField(
                        blank=True,
                        help_text="for example, why some data is still pending",
                        null=True,
                        verbose_name="Any comments related to status of this CRF",
                    ),
                ),
                (
                    "travel_time",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FTRATIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="How long did it take you to reach here?",
                    ),
                ),
                (
                    "travel_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="in local currency",
                        metadata="FTRAVCOST1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(1),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="Thinking about yourself and anyone that accompanied you, how much was spent on travel from your home to reach here?",
                    ),
                ),
                (
                    "food_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="in local currency",
                        metadata="FFOODCOST1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="Thinking about yourself and anyone that accompanied you, how much did you have to pay for food, drink or other refreshments during your travel or during your visit? (e.g. food, drink, etc.)",
                    ),
                ),
                (
                    "visit_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FFEECOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much money did you spend on healthworker and consultation fees during this visit?",
                    ),
                ),
                (
                    "med_prescribed",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=25,
                        metadata="FMED1",
                        verbose_name="Were you prescribed any medicines during this visit?",
                    ),
                ),
                (
                    "med_conditions_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FMEDCONDOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "med_collected",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=25,
                        metadata="FMEDCOLL1",
                        verbose_name="Did you receive/collect these medicines (whether paid or received for free)?",
                    ),
                ),
                (
                    "med_not_collected_reason",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("meds_at_home", "Already had the medicines at home"),
                            ("unavailable", "Medicines were not available"),
                            ("expensive", "Medicines were too expensive"),
                            ("home_remedies", "Home remedies are better"),
                            (
                                "unimportant",
                                "Did not think it was important to get these medicines",
                            ),
                            ("too_busy", "Did not have the time to collect or buy medicines"),
                            ("problematic", "Taking medicines caused problems"),
                            ("OTHER", "Other, please specify ..."),
                        ],
                        max_length=25,
                        metadata="FMED1",
                        verbose_name="Why were these medicines not received/collected?",
                    ),
                ),
                (
                    "med_not_collected_reason_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FMEDOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "med_cost_tot",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FMEDCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on these medicines? ",
                    ),
                ),
                (
                    "med_cost_hiv",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="Leave blank if not applicable. In local currency",
                        metadata="FMEDCOSTHIV1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on HIV medicines? ",
                    ),
                ),
                (
                    "med_cost_htn",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="Leave blank if not applicable. In local currency",
                        metadata="FMEDCOSTHTN1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on Hypertension medicines? ",
                    ),
                ),
                (
                    "med_cost_dm",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="Leave blank if not applicable. In local currency",
                        metadata="FMEDCOSTDM1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on Diabetes medicines? ",
                    ),
                ),
                (
                    "med_cost_other",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="Leave blank if not applicable. In local currency",
                        metadata="FMEDCOSTOTHER1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much was spent on OTHER medicines? ",
                    ),
                ),
                (
                    "tests_requested",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=25,
                        metadata="FTEST1",
                        verbose_name="Did the healthcare worker request for any tests to be done during this visit?",
                    ),
                ),
                (
                    "tests_done",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        max_length=25,
                        metadata="FTESTDONE1",
                        verbose_name="Were the tests performed?",
                    ),
                ),
                (
                    "tests_not_done_reason",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("unavailable", "Tests were not available"),
                            ("expensive", "Tests were too expensive"),
                            (
                                "unimportant",
                                "Did not think it was important to do these tests ",
                            ),
                            ("too_busy", "Did not have the time to do these tests"),
                            ("OTHER", "Other, please specify ..."),
                            ("N/A", "Not applicable"),
                        ],
                        default="N/A",
                        max_length=25,
                        metadata="FTESTNO1",
                        verbose_name="Why were the tests not performed?",
                    ),
                ),
                (
                    "tests_not_done_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FTESTNOOTHER1",
                        null=True,
                        verbose_name="If other, please specify ...",
                    ),
                ),
                (
                    "tests_cost",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        help_text="in local currency",
                        metadata="FTESTCOST1",
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999),
                        ],
                        verbose_name="How much did you spend on these tests?",
                    ),
                ),
                (
                    "facility_duration",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FFACTIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="How much time did you spend during your visit today -- from arrival to this place until the end of your visit?",
                    ),
                ),
                (
                    "wait_duration",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FWAITIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="How much time did you spend waiting?",
                    ),
                ),
                (
                    "hworker_duration",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        help_text="in hours and minutes (format HH:MM)",
                        max_length=5,
                        metadata="FWORKTIME1",
                        validators=[
                            django.core.validators.RegexValidator(
                                "^([0-9]{1,3}h([0-5]?[0-9]m)?)$",
                                message="Invalid format. Expected something like 1h20m, 11h5m, etc",
                            )
                        ],
                        verbose_name="How much time did you spend with the healthcare worker?",
                    ),
                ),
                (
                    "facility_visit_alt",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            (
                                "paid_work",
                                "Paid work (e.g. full-time employment, small business owners/traders, day jobs, etc.)",
                            ),
                            (
                                "unpaid_work",
                                "Unpaid work (e.g. subsistence farming, housework etc.)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FACTIVITY1",
                        verbose_name="If you were not attending the visit today, what would you have been doing?",
                    ),
                ),
                (
                    "alt_lost_income",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency. Ask for cash value or equivalent cash value for in-kind",
                        metadata="FPAID1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="How much would you have made in cash or in-kind for a day’s work?",
                    ),
                ),
                (
                    "referral",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No")],
                        max_length=15,
                        metadata="FREFER1",
                        verbose_name="As a result of your visit today, have you been referred for further care?",
                    ),
                ),
                (
                    "referral_type",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("inpatient", "Inpatient"),
                            ("outpatient", "Outpatient (includes laboratory testing)"),
                        ],
                        max_length=25,
                        metadata="FREFTYPE1",
                        verbose_name="Is this for inpatient or outpatient care?",
                    ),
                ),
                (
                    "referral_facility",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("public_clinic", "Public facility below tertiary level"),
                            ("private_clinic", "Private clinic"),
                            ("private_dx_facility", "Private diagnostic facility"),
                            ("ngo_clinic", "NGO clinic"),
                            ("public_hospital", "Public Hospital/tertiary facility"),
                            ("private_hospital", "Private hospital"),
                            ("pharmacy", "Pharmacy"),
                        ],
                        max_length=25,
                        metadata="FREFAC1",
                        verbose_name="What type of facility have you been referred to?",
                    ),
                ),
                (
                    "accompany_num",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        metadata="FACMP1"
                    ),
                ),
                (
                    "accompany_wait",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[("Yes", "Yes"), ("No", "No"), ("N/A", "Not applicable")],
                        default="N/A",
                        max_length=15,
                        metadata="FACMPWAIT1",
                        verbose_name="Did the people accompanying you wait for you during the visit?",
                    ),
                ),
                (
                    "accompany_alt",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        blank=True,
                        choices=[
                            (
                                "paid_work",
                                "Paid work (e.g. full-time employment, small business owners/traders, day jobs, etc.)",
                            ),
                            (
                                "unpaid_work",
                                "Unpaid work (e.g. subsistence farming, housework etc.)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FACMPACT1",
                        null=True,
                        verbose_name="If those accompanying you were not attending the visit with you today, what would they have been doing?",
                    ),
                ),
                (
                    "accompany_lost_income",
                    edc_model_fields.fields.custom_django_fields.IntegerField2(
                        blank=True,
                        help_text="In local currency. Ask for cash value or equivalent cash value for in-kind",
                        metadata="FACMP1",
                        null=True,
                        validators=[
                            django.core.validators.MinValueValidator(0),
                            django.core.validators.MaxValueValidator(9999999999),
                        ],
                        verbose_name="How much would they have made in cash or in-kind for a day’s work?",
                    ),
                ),
                (
                    "money_sources_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        metadata="FTODSOURCEOTHER",
                        null=True,
                        verbose_name="If other 'source of payment', please specify ...",
                    ),
                ),
                (
                    "money_source_main",
                    edc_model_fields.fields.custom_django_fields.CharField2(
                        choices=[
                            ("own_savings", "Own saving (e.g. “loose funds”, bank savings)"),
                            (
                                "family_gift",
                                "Loan from family members that does not need to be repaid",
                            ),
                            ("family_loan", "Loan from family member that needs to be repaid"),
                            (
                                "gift_relative",
                                "Loan from relative/neighbour that does not need to be repaid",
                            ),
                            (
                                "loan_relative",
                                "Loan from relative/neighbour that needs to be repaid",
                            ),
                            ("loan_money_lender", "Loan from money lender"),
                            ("loan_bank", "Loan from another source eg bank"),
                            ("community", "Self-help community group"),
                            ("national_insurance", "National health insurance"),
                            ("private_insurance", "Private health insurance"),
                            ("community_insurance", "Community health insurance"),
                            ("waiver", "Government waiver"),
                            (
                                "asset_sale",
                                "Sale of assets (property, livestock, jewellery, household goods, etc)",
                            ),
                            ("OTHER", "Other (specify)"),
                        ],
                        max_length=25,
                        metadata="FTODSOURCEMAIN1",
                        verbose_name="Of the various sources that you have just mentioned, what was the main source of payment?",
                    ),
                ),
                (
                    "money_source_main_other",
                    edc_model_fields.fields.other_charfield.OtherCharField(
                        blank=True,
                        max_length=35,
                        null=True,
                        verbose_name="If other main 'source of payment', please specify ...",
                    ),
                ),
                (
                    "accompany",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        metadata="FACMP1",
                        to="intecomm_lists.accompanied",
                        verbose_name="Who accompanied you here today?",
                    ),
                ),
                (
                    "med_conditions",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        metadata="FMEDCOND1",
                        to="intecomm_lists.conditions",
                        verbose_name="What were the medicines were for?",
                    ),
                ),
                (
                    "money_sources",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        help_text="Select up to three sources. If ‘other’, please specify.",
                        metadata="FTODSOURCE",
                        to="intecomm_lists.moneysources",
                        verbose_name="Thinking about the expenses you have reported for today’s visit, what were the source(s) of payment for all these expenses?",
                    ),
                ),
                (
                    "site",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.PROTECT,
                        related_name="+",
                        to="sites.site",
                    ),
                ),
                (
                    "subject_visit",
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.PROTECT,
                        to="intecomm_subject.subjectvisit",
                    ),
                ),
                (
                    "travel_method",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        metadata="FTRA1",
                        to="intecomm_lists.travelmethods",
                        verbose_name="How did you travel here?",
                    ),
                ),
                (
                    "visit_reason",
                    edc_model_fields.fields.custom_django_fields.ManyToManyField2(
                        metadata="FMEDCOND1",
                        to="intecomm_lists.visitreasons",
                        verbose_name="What was the reason for today’s visit?",
                    ),
                ),
            ],
            options={
                "verbose_name": "Cost of Careseeking: Part A",
                "verbose_name_plural": "Cost of Careseeking: Part A",
                "abstract": False,
                "default_permissions": ("add", "change", "delete", "view", "export", "import"),
                "default_manager_name": "objects",
                "indexes": [
                    models.Index(
                        fields=["subject_visit", "site"], name="intecomm_su_subject_8c3529_idx"
                    ),
                    models.Index(
                        fields=["subject_visit", "report_datetime"],
                        name="intecomm_su_subject_1366c1_idx",
                    ),
                    models.Index(
                        fields=["modified", "created"], name="intecomm_su_modifie_7eb7c4_idx"
                    ),
                    models.Index(
                        fields=["user_modified", "user_created"],
                        name="intecomm_su_user_mo_f49209_idx",
                    ),
                ],
            },
            managers=[
                ("objects", edc_visit_tracking.managers.CrfModelManager()),
                ("on_site", edc_visit_tracking.managers.CrfCurrentSiteManager()),
            ],
        ),
    ]
