# coding: utf-8

"""
    aind-sharepoint-service

     ## aind-sharepoint-service  Service to pull data from Sharepoint.  

    The version of the OpenAPI document: 0.1.5
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


from __future__ import annotations
import pprint
import re  # noqa: F401
import json

from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional, Union
from aind_sharepoint_service_async_client.models.nsb2019_after1_st_injection import NSB2019After1StInjection
from aind_sharepoint_service_async_client.models.nsb2019_after2_nd_injection import NSB2019After2NdInjection
from aind_sharepoint_service_async_client.models.nsb2019_contusion import NSB2019Contusion
from aind_sharepoint_service_async_client.models.nsb2019_craniotomy_type import NSB2019CraniotomyType
from aind_sharepoint_service_async_client.models.nsb2019_during1_st_injection import NSB2019During1StInjection
from aind_sharepoint_service_async_client.models.nsb2019_during2_nd_injection import NSB2019During2NdInjection
from aind_sharepoint_service_async_client.models.nsb2019_durotomy import NSB2019Durotomy
from aind_sharepoint_service_async_client.models.nsb2019_edema_swelling import NSB2019EdemaSwelling
from aind_sharepoint_service_async_client.models.nsb2019_exudate_severity import NSB2019ExudateSeverity
from aind_sharepoint_service_async_client.models.nsb2019_eye_affected import NSB2019EyeAffected
from aind_sharepoint_service_async_client.models.nsb2019_eye_issue import NSB2019EyeIssue
from aind_sharepoint_service_async_client.models.nsb2019_first_round_inj_iso_level import NSB2019FirstRoundInjIsoLevel
from aind_sharepoint_service_async_client.models.nsb2019_first_round_inj_workstation import NSB2019FirstRoundInjWorkstation
from aind_sharepoint_service_async_client.models.nsb2019_firstroundiontoissue import NSB2019Firstroundiontoissue
from aind_sharepoint_service_async_client.models.nsb2019_firstroundiontonumber import NSB2019Firstroundiontonumber
from aind_sharepoint_service_async_client.models.nsb2019_firstroundnanojectnumber import NSB2019Firstroundnanojectnumber
from aind_sharepoint_service_async_client.models.nsb2019_headpost_type import NSB2019HeadpostType
from aind_sharepoint_service_async_client.models.nsb2019_hematoma import NSB2019Hematoma
from aind_sharepoint_service_async_client.models.nsb2019_hp_durotomy import NSB2019HpDurotomy
from aind_sharepoint_service_async_client.models.nsb2019_hp_iso_level import NSB2019HpIsoLevel
from aind_sharepoint_service_async_client.models.nsb2019_hp_location import NSB2019HpLocation
from aind_sharepoint_service_async_client.models.nsb2019_hp_perferations import NSB2019HpPerferations
from aind_sharepoint_service_async_client.models.nsb2019_hp_work_station import NSB2019HpWorkStation
from aind_sharepoint_service_async_client.models.nsb2019_iacuc_protocol import NSB2019IacucProtocol
from aind_sharepoint_service_async_client.models.nsb2019_implant_id_coverslip_type import NSB2019ImplantIdCoverslipType
from aind_sharepoint_service_async_client.models.nsb2019_inj1_angle import NSB2019Inj1Angle
from aind_sharepoint_service_async_client.models.nsb2019_inj1_hemisphere import NSB2019Inj1Hemisphere
from aind_sharepoint_service_async_client.models.nsb2019_inj1_retsetting import NSB2019Inj1Retsetting
from aind_sharepoint_service_async_client.models.nsb2019_inj1_round import NSB2019Inj1Round
from aind_sharepoint_service_async_client.models.nsb2019_inj1_type import NSB2019Inj1Type
from aind_sharepoint_service_async_client.models.nsb2019_inj2_angle import NSB2019Inj2Angle
from aind_sharepoint_service_async_client.models.nsb2019_inj2_hemisphere import NSB2019Inj2Hemisphere
from aind_sharepoint_service_async_client.models.nsb2019_inj2_retsetting import NSB2019Inj2Retsetting
from aind_sharepoint_service_async_client.models.nsb2019_inj2_round import NSB2019Inj2Round
from aind_sharepoint_service_async_client.models.nsb2019_inj2_type import NSB2019Inj2Type
from aind_sharepoint_service_async_client.models.nsb2019_iontonumberhpinj import NSB2019Iontonumberhpinj
from aind_sharepoint_service_async_client.models.nsb2019_issue import NSB2019Issue
from aind_sharepoint_service_async_client.models.nsb2019_laceration import NSB2019Laceration
from aind_sharepoint_service_async_client.models.nsb2019_light_cycle import NSB2019LightCycle
from aind_sharepoint_service_async_client.models.nsb2019_lims_project_code import NSB2019LimsProjectCode
from aind_sharepoint_service_async_client.models.nsb2019_lims_required import NSB2019LimsRequired
from aind_sharepoint_service_async_client.models.nsb2019_limstaskflow import NSB2019Limstaskflow
from aind_sharepoint_service_async_client.models.nsb2019_previously_injected import NSB2019PreviouslyInjected
from aind_sharepoint_service_async_client.models.nsb2019_procedure import NSB2019Procedure
from aind_sharepoint_service_async_client.models.nsb2019_project_id import NSB2019ProjectId
from aind_sharepoint_service_async_client.models.nsb2019_scabbing import NSB2019Scabbing
from aind_sharepoint_service_async_client.models.nsb2019_second_round_inj_iso_level import NSB2019SecondRoundInjIsoLevel
from aind_sharepoint_service_async_client.models.nsb2019_second_round_ionto_issue import NSB2019SecondRoundIontoIssue
from aind_sharepoint_service_async_client.models.nsb2019_second_round_workstation import NSB2019SecondRoundWorkstation
from aind_sharepoint_service_async_client.models.nsb2019_secondroundiontonumber import NSB2019Secondroundiontonumber
from aind_sharepoint_service_async_client.models.nsb2019_secondroundnanojectnumber import NSB2019Secondroundnanojectnumber
from aind_sharepoint_service_async_client.models.nsb2019_sex import NSB2019Sex
from aind_sharepoint_service_async_client.models.nsb2019_sinus_bleed import NSB2019SinusBleed
from aind_sharepoint_service_async_client.models.nsb2019_surgery_status import NSB2019SurgeryStatus
from aind_sharepoint_service_async_client.models.nsb2019_touch_up_status import NSB2019TouchUpStatus
from aind_sharepoint_service_async_client.models.nsb2019_window_clarity import NSB2019WindowClarity
from typing import Optional, Set
from typing_extensions import Self

class NSB2019List(BaseModel):
    """
    Fields in Sharepoint list
    """ # noqa: E501
    age_x0020_at_x0020_injection: Optional[StrictStr] = Field(default=None, alias="Age_x0020_at_x0020_Injection")
    ap2nd_inj: Optional[StrictStr] = Field(default=None, alias="AP2ndInj")
    author_id: Optional[StrictInt] = Field(default=None, alias="AuthorId")
    breg2_lamb: Optional[StrictStr] = Field(default=None, alias="Breg2Lamb")
    cage: Optional[StrictStr] = Field(default=None, alias="Cage")
    color_tag: Optional[StrictStr] = Field(default=None, alias="_ColorTag")
    com_after1st_inj: Optional[NSB2019After1StInjection] = Field(default=None, alias="ComAfter1stInj")
    com_after2nd_inj: Optional[NSB2019After2NdInjection] = Field(default=None, alias="ComAfter2ndInj")
    com_coplanar: Optional[NSB2019Laceration] = Field(default=None, alias="ComCoplanar")
    com_damage: Optional[NSB2019Hematoma] = Field(default=None, alias="ComDamage")
    com_during1st_inj: Optional[NSB2019During1StInjection] = Field(default=None, alias="ComDuring1stInj")
    com_during2nd_inj: Optional[NSB2019During2NdInjection] = Field(default=None, alias="ComDuring2ndInj")
    com_durotomy: Optional[NSB2019Durotomy] = Field(default=None, alias="ComDurotomy")
    com_sinusbleed: Optional[NSB2019SinusBleed] = Field(default=None, alias="ComSinusbleed")
    com_swelling: Optional[NSB2019EdemaSwelling] = Field(default=None, alias="ComSwelling")
    com_window: Optional[NSB2019WindowClarity] = Field(default=None, alias="ComWindow")
    compliance_asset_id: Optional[StrictStr] = Field(default=None, alias="ComplianceAssetId")
    contusion: Optional[NSB2019Contusion] = Field(default=None, alias="Contusion")
    craniotomy_type: Optional[NSB2019CraniotomyType] = Field(default=None, alias="CraniotomyType")
    created: Optional[datetime] = Field(default=None, alias="Created")
    date1st_injection: Optional[datetime] = Field(default=None, alias="Date1stInjection")
    date2nd_injection: Optional[datetime] = Field(default=None, alias="Date2ndInjection")
    date_x0020_of_x0020_birth: Optional[datetime] = Field(default=None, alias="Date_x0020_of_x0020_Birth")
    date_x0020_of_x0020_surgery: Optional[datetime] = Field(default=None, alias="Date_x0020_of_x0020_Surgery")
    date_range_end: Optional[datetime] = Field(default=None, alias="DateRangeEnd")
    date_range_start: Optional[datetime] = Field(default=None, alias="DateRangeStart")
    dv2nd_inj: Optional[StrictStr] = Field(default=None, alias="DV2ndInj")
    editor_id: Optional[StrictInt] = Field(default=None, alias="EditorId")
    end_x0020_of_x0020_week: Optional[datetime] = Field(default=None, alias="End_x0020_of_x0020_Week")
    exudate_x0020_severity: Optional[NSB2019ExudateSeverity] = Field(default=None, alias="Exudate_x0020_Severity")
    eye_x0020_affected: Optional[NSB2019EyeAffected] = Field(default=None, alias="Eye_x0020_Affected")
    eye_x0020_issue: Optional[NSB2019EyeIssue] = Field(default=None, alias="Eye_x0020_Issue")
    fiber_implant1: Optional[StrictBool] = Field(default=None, alias="FiberImplant1")
    fiber_implant1_dv: Optional[StrictStr] = Field(default=None, alias="FiberImplant1DV")
    fiber_implant2: Optional[StrictBool] = Field(default=None, alias="FiberImplant2")
    fiber_implant2_dv: Optional[StrictStr] = Field(default=None, alias="FiberImplant2DV")
    field30: Optional[StrictStr] = None
    field50: Optional[StrictStr] = None
    first_inj_recovery: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="FirstInjRecovery")
    first_injection_iso_duration: Optional[StrictStr] = Field(default=None, alias="FirstInjectionIsoDuration")
    first_injection_weight_after: Optional[StrictStr] = Field(default=None, alias="FirstInjectionWeightAfter")
    first_injection_weight_befor: Optional[StrictStr] = Field(default=None, alias="FirstInjectionWeightBefor")
    first_round_ionto_issue: Optional[NSB2019Firstroundiontoissue] = Field(default=None, alias="FirstRoundIontoIssue")
    headpost_type: Optional[NSB2019HeadpostType] = Field(default=None, alias="HeadpostType")
    hemisphere2nd_inj: Optional[NSB2019Inj2Hemisphere] = Field(default=None, alias="Hemisphere2ndInj")
    hp_x0020_a_x002f_p: Optional[StrictStr] = Field(default=None, alias="HP_x0020_A_x002f_P")
    hp_x0020_diameter: Optional[StrictStr] = Field(default=None, alias="HP_x0020_Diameter")
    hp_durotomy: Optional[NSB2019HpDurotomy] = Field(default=None, alias="HPDurotomy")
    hp_x0020__x0026__x0020_inj: Optional[StrictStr] = Field(default=None, alias="HP_x0020__x0026__x0020_Inj")
    hp_iso_level: Optional[NSB2019HpIsoLevel] = Field(default=None, alias="HPIsoLevel")
    hp_loc: Optional[NSB2019HpLocation] = Field(default=None, alias="HpLoc")
    hp_x0020_m_x002f_l: Optional[StrictStr] = Field(default=None, alias="HP_x0020_M_x002f_L")
    hp_perf: Optional[NSB2019HpPerferations] = Field(default=None, alias="HpPerf")
    hp_prev_inject: Optional[NSB2019PreviouslyInjected] = Field(default=None, alias="HpPrevInject")
    hp_recovery: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="HPRecovery")
    x0031_hp_x0020_requestor_x0020_: Optional[StrictStr] = Field(default=None, alias="_x0031_HP_x0020_Requestor_x0020_")
    hp_requestor_comments_plaintext: Optional[StrictStr] = Field(default=None, alias="HPRequestorCommentsPlaintext")
    hp_surgeon_comments: Optional[StrictStr] = Field(default=None, alias="HPSurgeonComments")
    hp_work_station: Optional[NSB2019HpWorkStation] = Field(default=None, alias="HpWorkStation")
    iacuc_x0020_protocol_x0020__x002: Optional[NSB2019IacucProtocol] = Field(default=None, description="Create a secondary List for Protocols and link to drugs", alias="IACUC_x0020_Protocol_x0020__x002")
    id: Optional[StrictInt] = Field(default=None, alias="ID")
    implant_id_coverslip_type: Optional[NSB2019ImplantIdCoverslipType] = Field(default=None, alias="ImplantIDCoverslipType")
    inj1_alternating_time: Optional[StrictStr] = Field(default=None, alias="Inj1AlternatingTime")
    inj1_angle_v2: Optional[StrictStr] = Field(default=None, alias="Inj1Angle_v2")
    inj1_current: Optional[StrictStr] = Field(default=None, alias="Inj1Current")
    inj1_lenghtof_time: Optional[StrictStr] = Field(default=None, alias="Inj1LenghtofTime")
    inj1_round: Optional[NSB2019Inj1Round] = Field(default=None, alias="Inj1Round")
    inj1_storage_location: Optional[StrictStr] = Field(default=None, alias="Inj1StorageLocation")
    inj1_type: Optional[NSB2019Inj1Type] = Field(default=None, alias="Inj1Type")
    inj1_virus_strain_rt: Optional[StrictStr] = Field(default=None, alias="Inj1VirusStrain_rt")
    inj1_vol: Optional[StrictStr] = Field(default=None, alias="Inj1Vol")
    inj1angle0: Optional[NSB2019Inj1Angle] = Field(default=None, alias="Inj1angle0")
    inj1volperdepth: Optional[StrictStr] = None
    inj2_alternating_time: Optional[StrictStr] = Field(default=None, alias="Inj2AlternatingTime")
    inj2_angle_v2: Optional[StrictStr] = Field(default=None, alias="Inj2Angle_v2")
    inj2_current: Optional[StrictStr] = Field(default=None, alias="Inj2Current")
    inj2_lenghtof_time: Optional[StrictStr] = Field(default=None, alias="Inj2LenghtofTime")
    inj2_round: Optional[NSB2019Inj2Round] = Field(default=None, alias="Inj2Round")
    inj2_storage_location: Optional[StrictStr] = Field(default=None, alias="Inj2StorageLocation")
    inj2_type: Optional[NSB2019Inj2Type] = Field(default=None, alias="Inj2Type")
    inj2_virus_strain_rt: Optional[StrictStr] = Field(default=None, alias="Inj2VirusStrain_rt")
    inj2_vol: Optional[StrictStr] = Field(default=None, alias="Inj2Vol")
    inj2angle0: Optional[NSB2019Inj2Angle] = Field(default=None, alias="Inj2angle0")
    inj2volperdepth: Optional[StrictStr] = None
    ionto_number_hpinj: Optional[NSB2019Iontonumberhpinj] = Field(default=None, alias="IontoNumberHPINJ")
    ionto_number_inj1: Optional[NSB2019Firstroundiontonumber] = Field(default=None, alias="IontoNumberInj1")
    ionto_number_inj2: Optional[NSB2019Secondroundiontonumber] = Field(default=None, alias="IontoNumberInj2")
    iso_x0020_on: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="Iso_x0020_On")
    issue: Optional[NSB2019Issue] = Field(default=None, alias="Issue")
    lab_tracks_x0020_group: Optional[StrictStr] = Field(default=None, alias="LabTracks_x0020_Group")
    lab_tracks_x0020_id: Optional[StrictStr] = Field(default=None, alias="LabTracks_x0020_ID")
    lab_tracks_x0020_requestor: Optional[StrictStr] = Field(default=None, alias="LabTracks_x0020_Requestor")
    lims_x0020_required: Optional[NSB2019LimsRequired] = Field(default=None, description="Is LIMs Entry required", alias="LIMs_x0020_Required")
    light_x0020_cycle: Optional[NSB2019LightCycle] = Field(default=None, alias="Light_x0020_Cycle")
    lim_staskflow1: Optional[NSB2019Limstaskflow] = Field(default=None, alias="LIMStaskflow1")
    lims_x0020_link: Optional[StrictStr] = Field(default=None, alias="LIMS_x0020_link")
    lims_x0020_project_x0020_code: Optional[NSB2019LimsProjectCode] = Field(default=None, alias="Lims_x0020_Project_x0020_Code")
    long1st_round_inj_cmts: Optional[StrictStr] = Field(default=None, alias="Long1stRoundInjCmts")
    long2nd_rnd_inj_cmts: Optional[StrictStr] = Field(default=None, alias="Long2ndRndInjCmts")
    long_requestor_comments: Optional[StrictStr] = Field(default=None, alias="LongRequestorComments")
    long_surgeon_comments: Optional[StrictStr] = Field(default=None, alias="LongSurgeonComments")
    ml2nd_inj: Optional[StrictStr] = Field(default=None, alias="ML2ndInj")
    modified: Optional[datetime] = Field(default=None, alias="Modified")
    nanoject_number_inj10: Optional[NSB2019Firstroundnanojectnumber] = Field(default=None, alias="NanojectNumberInj10")
    nanoject_number_inj2: Optional[NSB2019Secondroundnanojectnumber] = Field(default=None, alias="NanojectNumberInj2")
    nd_roung_injection_comments: Optional[StrictStr] = Field(default=None, alias="ndRoungInjectionComments")
    pedigree_name: Optional[StrictStr] = Field(default=None, alias="PedigreeName")
    procedure: Optional[NSB2019Procedure] = Field(default=None, description="Type of Surgical Procedure", alias="Procedure")
    project_x0020_id_x0020__x0028_te: Optional[NSB2019ProjectId] = Field(default=None, alias="Project_x0020_ID_x0020__x0028_te")
    ret_setting0: Optional[NSB2019Inj1Retsetting] = Field(default=None, alias="retSetting0")
    ret_setting1: Optional[NSB2019Inj2Retsetting] = Field(default=None, alias="retSetting1")
    round1_inj_isolevel: Optional[NSB2019FirstRoundInjIsoLevel] = Field(default=None, alias="Round1InjIsolevel")
    round2_inj_isolevel: Optional[NSB2019SecondRoundInjIsoLevel] = Field(default=None, alias="Round2InjIsolevel")
    scabbing: Optional[NSB2019Scabbing] = Field(default=None, alias="Scabbing")
    second_inj_recover: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="SecondInjRecover")
    second_injection_iso_duration: Optional[StrictStr] = Field(default=None, alias="SecondInjectionIsoDuration")
    second_injection_weight_after: Optional[StrictStr] = Field(default=None, alias="SecondInjectionWeightAfter")
    second_injection_weight_before: Optional[StrictStr] = Field(default=None, alias="SecondInjectionWeightBefore")
    second_round_ionto_issue: Optional[NSB2019SecondRoundIontoIssue] = Field(default=None, alias="SecondRoundIontoIssue")
    sex: Optional[NSB2019Sex] = Field(default=None, alias="Sex")
    st_round_injection_comments: Optional[StrictStr] = Field(default=None, alias="stRoundInjectionComments")
    start_x0020_of_x0020_week: Optional[datetime] = Field(default=None, alias="Start_x0020_Of_x0020_Week")
    surgery_status: Optional[NSB2019SurgeryStatus] = Field(default=None, alias="SurgeryStatus")
    title: Optional[StrictStr] = Field(default=None, alias="Title")
    touch_x0020_up_x0020__x0020_comp: Optional[datetime] = Field(default=None, alias="Touch_x0020_Up_x0020__x0020_Comp")
    touch_x0020_up_x0020_status: Optional[NSB2019TouchUpStatus] = Field(default=None, alias="Touch_x0020_Up_x0020_Status")
    touch_x0020_up_x0020_weight_x002: Optional[StrictStr] = Field(default=None, alias="Touch_x0020_Up_x0020_Weight_x002")
    ui_version_string: Optional[StrictStr] = Field(default=None, alias="_UIVersionString")
    virus_x0020_a_x002f_p: Optional[StrictStr] = Field(default=None, alias="Virus_x0020_A_x002f_P")
    virus_x0020_d_x002f_v: Optional[StrictStr] = Field(default=None, alias="Virus_x0020_D_x002f_V")
    virus_x0020_hemisphere: Optional[NSB2019Inj1Hemisphere] = Field(default=None, alias="Virus_x0020_Hemisphere")
    virus_x0020_m_x002f_l: Optional[StrictStr] = Field(default=None, alias="Virus_x0020_M_x002f_L")
    weight_x0020_after_x0020_surgery: Optional[StrictStr] = Field(default=None, alias="Weight_x0020_after_x0020_Surgery")
    weight_x0020_before_x0020_surger: Optional[StrictStr] = Field(default=None, alias="Weight_x0020_before_x0020_Surger")
    work_station1st_injection: Optional[NSB2019FirstRoundInjWorkstation] = Field(default=None, alias="WorkStation1stInjection")
    work_station2nd_injection: Optional[NSB2019SecondRoundWorkstation] = Field(default=None, alias="WorkStation2ndInjection")
    additional_properties: Dict[str, Any] = {}
    __properties: ClassVar[List[str]] = ["Age_x0020_at_x0020_Injection", "AP2ndInj", "AuthorId", "Breg2Lamb", "Cage", "_ColorTag", "ComAfter1stInj", "ComAfter2ndInj", "ComCoplanar", "ComDamage", "ComDuring1stInj", "ComDuring2ndInj", "ComDurotomy", "ComSinusbleed", "ComSwelling", "ComWindow", "ComplianceAssetId", "Contusion", "CraniotomyType", "Created", "Date1stInjection", "Date2ndInjection", "Date_x0020_of_x0020_Birth", "Date_x0020_of_x0020_Surgery", "DateRangeEnd", "DateRangeStart", "DV2ndInj", "EditorId", "End_x0020_of_x0020_Week", "Exudate_x0020_Severity", "Eye_x0020_Affected", "Eye_x0020_Issue", "FiberImplant1", "FiberImplant1DV", "FiberImplant2", "FiberImplant2DV", "field30", "field50", "FirstInjRecovery", "FirstInjectionIsoDuration", "FirstInjectionWeightAfter", "FirstInjectionWeightBefor", "FirstRoundIontoIssue", "HeadpostType", "Hemisphere2ndInj", "HP_x0020_A_x002f_P", "HP_x0020_Diameter", "HPDurotomy", "HP_x0020__x0026__x0020_Inj", "HPIsoLevel", "HpLoc", "HP_x0020_M_x002f_L", "HpPerf", "HpPrevInject", "HPRecovery", "_x0031_HP_x0020_Requestor_x0020_", "HPRequestorCommentsPlaintext", "HPSurgeonComments", "HpWorkStation", "IACUC_x0020_Protocol_x0020__x002", "ID", "ImplantIDCoverslipType", "Inj1AlternatingTime", "Inj1Angle_v2", "Inj1Current", "Inj1LenghtofTime", "Inj1Round", "Inj1StorageLocation", "Inj1Type", "Inj1VirusStrain_rt", "Inj1Vol", "Inj1angle0", "inj1volperdepth", "Inj2AlternatingTime", "Inj2Angle_v2", "Inj2Current", "Inj2LenghtofTime", "Inj2Round", "Inj2StorageLocation", "Inj2Type", "Inj2VirusStrain_rt", "Inj2Vol", "Inj2angle0", "inj2volperdepth", "IontoNumberHPINJ", "IontoNumberInj1", "IontoNumberInj2", "Iso_x0020_On", "Issue", "LabTracks_x0020_Group", "LabTracks_x0020_ID", "LabTracks_x0020_Requestor", "LIMs_x0020_Required", "Light_x0020_Cycle", "LIMStaskflow1", "LIMS_x0020_link", "Lims_x0020_Project_x0020_Code", "Long1stRoundInjCmts", "Long2ndRndInjCmts", "LongRequestorComments", "LongSurgeonComments", "ML2ndInj", "Modified", "NanojectNumberInj10", "NanojectNumberInj2", "ndRoungInjectionComments", "PedigreeName", "Procedure", "Project_x0020_ID_x0020__x0028_te", "retSetting0", "retSetting1", "Round1InjIsolevel", "Round2InjIsolevel", "Scabbing", "SecondInjRecover", "SecondInjectionIsoDuration", "SecondInjectionWeightAfter", "SecondInjectionWeightBefore", "SecondRoundIontoIssue", "Sex", "stRoundInjectionComments", "Start_x0020_Of_x0020_Week", "SurgeryStatus", "Title", "Touch_x0020_Up_x0020__x0020_Comp", "Touch_x0020_Up_x0020_Status", "Touch_x0020_Up_x0020_Weight_x002", "_UIVersionString", "Virus_x0020_A_x002f_P", "Virus_x0020_D_x002f_V", "Virus_x0020_Hemisphere", "Virus_x0020_M_x002f_L", "Weight_x0020_after_x0020_Surgery", "Weight_x0020_before_x0020_Surger", "WorkStation1stInjection", "WorkStation2ndInjection"]

    model_config = ConfigDict(
        populate_by_name=True,
        validate_assignment=True,
        protected_namespaces=(),
    )


    def to_str(self) -> str:
        """Returns the string representation of the model using alias"""
        return pprint.pformat(self.model_dump(by_alias=True))

    def to_json(self) -> str:
        """Returns the JSON representation of the model using alias"""
        # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
        return json.dumps(self.to_dict())

    @classmethod
    def from_json(cls, json_str: str) -> Optional[Self]:
        """Create an instance of NSB2019List from a JSON string"""
        return cls.from_dict(json.loads(json_str))

    def to_dict(self) -> Dict[str, Any]:
        """Return the dictionary representation of the model using alias.

        This has the following differences from calling pydantic's
        `self.model_dump(by_alias=True)`:

        * `None` is only added to the output dict for nullable fields that
          were set at model initialization. Other fields with value `None`
          are ignored.
        * Fields in `self.additional_properties` are added to the output dict.
        """
        excluded_fields: Set[str] = set([
            "additional_properties",
        ])

        _dict = self.model_dump(
            by_alias=True,
            exclude=excluded_fields,
            exclude_none=True,
        )
        # puts key-value pairs in additional_properties in the top level
        if self.additional_properties is not None:
            for _key, _value in self.additional_properties.items():
                _dict[_key] = _value

        # set to None if age_x0020_at_x0020_injection (nullable) is None
        # and model_fields_set contains the field
        if self.age_x0020_at_x0020_injection is None and "age_x0020_at_x0020_injection" in self.model_fields_set:
            _dict['Age_x0020_at_x0020_Injection'] = None

        # set to None if ap2nd_inj (nullable) is None
        # and model_fields_set contains the field
        if self.ap2nd_inj is None and "ap2nd_inj" in self.model_fields_set:
            _dict['AP2ndInj'] = None

        # set to None if author_id (nullable) is None
        # and model_fields_set contains the field
        if self.author_id is None and "author_id" in self.model_fields_set:
            _dict['AuthorId'] = None

        # set to None if breg2_lamb (nullable) is None
        # and model_fields_set contains the field
        if self.breg2_lamb is None and "breg2_lamb" in self.model_fields_set:
            _dict['Breg2Lamb'] = None

        # set to None if cage (nullable) is None
        # and model_fields_set contains the field
        if self.cage is None and "cage" in self.model_fields_set:
            _dict['Cage'] = None

        # set to None if color_tag (nullable) is None
        # and model_fields_set contains the field
        if self.color_tag is None and "color_tag" in self.model_fields_set:
            _dict['_ColorTag'] = None

        # set to None if compliance_asset_id (nullable) is None
        # and model_fields_set contains the field
        if self.compliance_asset_id is None and "compliance_asset_id" in self.model_fields_set:
            _dict['ComplianceAssetId'] = None

        # set to None if created (nullable) is None
        # and model_fields_set contains the field
        if self.created is None and "created" in self.model_fields_set:
            _dict['Created'] = None

        # set to None if date1st_injection (nullable) is None
        # and model_fields_set contains the field
        if self.date1st_injection is None and "date1st_injection" in self.model_fields_set:
            _dict['Date1stInjection'] = None

        # set to None if date2nd_injection (nullable) is None
        # and model_fields_set contains the field
        if self.date2nd_injection is None and "date2nd_injection" in self.model_fields_set:
            _dict['Date2ndInjection'] = None

        # set to None if date_x0020_of_x0020_birth (nullable) is None
        # and model_fields_set contains the field
        if self.date_x0020_of_x0020_birth is None and "date_x0020_of_x0020_birth" in self.model_fields_set:
            _dict['Date_x0020_of_x0020_Birth'] = None

        # set to None if date_x0020_of_x0020_surgery (nullable) is None
        # and model_fields_set contains the field
        if self.date_x0020_of_x0020_surgery is None and "date_x0020_of_x0020_surgery" in self.model_fields_set:
            _dict['Date_x0020_of_x0020_Surgery'] = None

        # set to None if date_range_end (nullable) is None
        # and model_fields_set contains the field
        if self.date_range_end is None and "date_range_end" in self.model_fields_set:
            _dict['DateRangeEnd'] = None

        # set to None if date_range_start (nullable) is None
        # and model_fields_set contains the field
        if self.date_range_start is None and "date_range_start" in self.model_fields_set:
            _dict['DateRangeStart'] = None

        # set to None if dv2nd_inj (nullable) is None
        # and model_fields_set contains the field
        if self.dv2nd_inj is None and "dv2nd_inj" in self.model_fields_set:
            _dict['DV2ndInj'] = None

        # set to None if editor_id (nullable) is None
        # and model_fields_set contains the field
        if self.editor_id is None and "editor_id" in self.model_fields_set:
            _dict['EditorId'] = None

        # set to None if end_x0020_of_x0020_week (nullable) is None
        # and model_fields_set contains the field
        if self.end_x0020_of_x0020_week is None and "end_x0020_of_x0020_week" in self.model_fields_set:
            _dict['End_x0020_of_x0020_Week'] = None

        # set to None if fiber_implant1 (nullable) is None
        # and model_fields_set contains the field
        if self.fiber_implant1 is None and "fiber_implant1" in self.model_fields_set:
            _dict['FiberImplant1'] = None

        # set to None if fiber_implant1_dv (nullable) is None
        # and model_fields_set contains the field
        if self.fiber_implant1_dv is None and "fiber_implant1_dv" in self.model_fields_set:
            _dict['FiberImplant1DV'] = None

        # set to None if fiber_implant2 (nullable) is None
        # and model_fields_set contains the field
        if self.fiber_implant2 is None and "fiber_implant2" in self.model_fields_set:
            _dict['FiberImplant2'] = None

        # set to None if fiber_implant2_dv (nullable) is None
        # and model_fields_set contains the field
        if self.fiber_implant2_dv is None and "fiber_implant2_dv" in self.model_fields_set:
            _dict['FiberImplant2DV'] = None

        # set to None if field30 (nullable) is None
        # and model_fields_set contains the field
        if self.field30 is None and "field30" in self.model_fields_set:
            _dict['field30'] = None

        # set to None if field50 (nullable) is None
        # and model_fields_set contains the field
        if self.field50 is None and "field50" in self.model_fields_set:
            _dict['field50'] = None

        # set to None if first_inj_recovery (nullable) is None
        # and model_fields_set contains the field
        if self.first_inj_recovery is None and "first_inj_recovery" in self.model_fields_set:
            _dict['FirstInjRecovery'] = None

        # set to None if first_injection_iso_duration (nullable) is None
        # and model_fields_set contains the field
        if self.first_injection_iso_duration is None and "first_injection_iso_duration" in self.model_fields_set:
            _dict['FirstInjectionIsoDuration'] = None

        # set to None if first_injection_weight_after (nullable) is None
        # and model_fields_set contains the field
        if self.first_injection_weight_after is None and "first_injection_weight_after" in self.model_fields_set:
            _dict['FirstInjectionWeightAfter'] = None

        # set to None if first_injection_weight_befor (nullable) is None
        # and model_fields_set contains the field
        if self.first_injection_weight_befor is None and "first_injection_weight_befor" in self.model_fields_set:
            _dict['FirstInjectionWeightBefor'] = None

        # set to None if hp_x0020_a_x002f_p (nullable) is None
        # and model_fields_set contains the field
        if self.hp_x0020_a_x002f_p is None and "hp_x0020_a_x002f_p" in self.model_fields_set:
            _dict['HP_x0020_A_x002f_P'] = None

        # set to None if hp_x0020_diameter (nullable) is None
        # and model_fields_set contains the field
        if self.hp_x0020_diameter is None and "hp_x0020_diameter" in self.model_fields_set:
            _dict['HP_x0020_Diameter'] = None

        # set to None if hp_x0020__x0026__x0020_inj (nullable) is None
        # and model_fields_set contains the field
        if self.hp_x0020__x0026__x0020_inj is None and "hp_x0020__x0026__x0020_inj" in self.model_fields_set:
            _dict['HP_x0020__x0026__x0020_Inj'] = None

        # set to None if hp_x0020_m_x002f_l (nullable) is None
        # and model_fields_set contains the field
        if self.hp_x0020_m_x002f_l is None and "hp_x0020_m_x002f_l" in self.model_fields_set:
            _dict['HP_x0020_M_x002f_L'] = None

        # set to None if hp_recovery (nullable) is None
        # and model_fields_set contains the field
        if self.hp_recovery is None and "hp_recovery" in self.model_fields_set:
            _dict['HPRecovery'] = None

        # set to None if x0031_hp_x0020_requestor_x0020_ (nullable) is None
        # and model_fields_set contains the field
        if self.x0031_hp_x0020_requestor_x0020_ is None and "x0031_hp_x0020_requestor_x0020_" in self.model_fields_set:
            _dict['_x0031_HP_x0020_Requestor_x0020_'] = None

        # set to None if hp_requestor_comments_plaintext (nullable) is None
        # and model_fields_set contains the field
        if self.hp_requestor_comments_plaintext is None and "hp_requestor_comments_plaintext" in self.model_fields_set:
            _dict['HPRequestorCommentsPlaintext'] = None

        # set to None if hp_surgeon_comments (nullable) is None
        # and model_fields_set contains the field
        if self.hp_surgeon_comments is None and "hp_surgeon_comments" in self.model_fields_set:
            _dict['HPSurgeonComments'] = None

        # set to None if id (nullable) is None
        # and model_fields_set contains the field
        if self.id is None and "id" in self.model_fields_set:
            _dict['ID'] = None

        # set to None if inj1_alternating_time (nullable) is None
        # and model_fields_set contains the field
        if self.inj1_alternating_time is None and "inj1_alternating_time" in self.model_fields_set:
            _dict['Inj1AlternatingTime'] = None

        # set to None if inj1_angle_v2 (nullable) is None
        # and model_fields_set contains the field
        if self.inj1_angle_v2 is None and "inj1_angle_v2" in self.model_fields_set:
            _dict['Inj1Angle_v2'] = None

        # set to None if inj1_current (nullable) is None
        # and model_fields_set contains the field
        if self.inj1_current is None and "inj1_current" in self.model_fields_set:
            _dict['Inj1Current'] = None

        # set to None if inj1_lenghtof_time (nullable) is None
        # and model_fields_set contains the field
        if self.inj1_lenghtof_time is None and "inj1_lenghtof_time" in self.model_fields_set:
            _dict['Inj1LenghtofTime'] = None

        # set to None if inj1_storage_location (nullable) is None
        # and model_fields_set contains the field
        if self.inj1_storage_location is None and "inj1_storage_location" in self.model_fields_set:
            _dict['Inj1StorageLocation'] = None

        # set to None if inj1_virus_strain_rt (nullable) is None
        # and model_fields_set contains the field
        if self.inj1_virus_strain_rt is None and "inj1_virus_strain_rt" in self.model_fields_set:
            _dict['Inj1VirusStrain_rt'] = None

        # set to None if inj1_vol (nullable) is None
        # and model_fields_set contains the field
        if self.inj1_vol is None and "inj1_vol" in self.model_fields_set:
            _dict['Inj1Vol'] = None

        # set to None if inj1volperdepth (nullable) is None
        # and model_fields_set contains the field
        if self.inj1volperdepth is None and "inj1volperdepth" in self.model_fields_set:
            _dict['inj1volperdepth'] = None

        # set to None if inj2_alternating_time (nullable) is None
        # and model_fields_set contains the field
        if self.inj2_alternating_time is None and "inj2_alternating_time" in self.model_fields_set:
            _dict['Inj2AlternatingTime'] = None

        # set to None if inj2_angle_v2 (nullable) is None
        # and model_fields_set contains the field
        if self.inj2_angle_v2 is None and "inj2_angle_v2" in self.model_fields_set:
            _dict['Inj2Angle_v2'] = None

        # set to None if inj2_current (nullable) is None
        # and model_fields_set contains the field
        if self.inj2_current is None and "inj2_current" in self.model_fields_set:
            _dict['Inj2Current'] = None

        # set to None if inj2_lenghtof_time (nullable) is None
        # and model_fields_set contains the field
        if self.inj2_lenghtof_time is None and "inj2_lenghtof_time" in self.model_fields_set:
            _dict['Inj2LenghtofTime'] = None

        # set to None if inj2_storage_location (nullable) is None
        # and model_fields_set contains the field
        if self.inj2_storage_location is None and "inj2_storage_location" in self.model_fields_set:
            _dict['Inj2StorageLocation'] = None

        # set to None if inj2_virus_strain_rt (nullable) is None
        # and model_fields_set contains the field
        if self.inj2_virus_strain_rt is None and "inj2_virus_strain_rt" in self.model_fields_set:
            _dict['Inj2VirusStrain_rt'] = None

        # set to None if inj2_vol (nullable) is None
        # and model_fields_set contains the field
        if self.inj2_vol is None and "inj2_vol" in self.model_fields_set:
            _dict['Inj2Vol'] = None

        # set to None if inj2volperdepth (nullable) is None
        # and model_fields_set contains the field
        if self.inj2volperdepth is None and "inj2volperdepth" in self.model_fields_set:
            _dict['inj2volperdepth'] = None

        # set to None if iso_x0020_on (nullable) is None
        # and model_fields_set contains the field
        if self.iso_x0020_on is None and "iso_x0020_on" in self.model_fields_set:
            _dict['Iso_x0020_On'] = None

        # set to None if lab_tracks_x0020_group (nullable) is None
        # and model_fields_set contains the field
        if self.lab_tracks_x0020_group is None and "lab_tracks_x0020_group" in self.model_fields_set:
            _dict['LabTracks_x0020_Group'] = None

        # set to None if lab_tracks_x0020_id (nullable) is None
        # and model_fields_set contains the field
        if self.lab_tracks_x0020_id is None and "lab_tracks_x0020_id" in self.model_fields_set:
            _dict['LabTracks_x0020_ID'] = None

        # set to None if lab_tracks_x0020_requestor (nullable) is None
        # and model_fields_set contains the field
        if self.lab_tracks_x0020_requestor is None and "lab_tracks_x0020_requestor" in self.model_fields_set:
            _dict['LabTracks_x0020_Requestor'] = None

        # set to None if lims_x0020_link (nullable) is None
        # and model_fields_set contains the field
        if self.lims_x0020_link is None and "lims_x0020_link" in self.model_fields_set:
            _dict['LIMS_x0020_link'] = None

        # set to None if long1st_round_inj_cmts (nullable) is None
        # and model_fields_set contains the field
        if self.long1st_round_inj_cmts is None and "long1st_round_inj_cmts" in self.model_fields_set:
            _dict['Long1stRoundInjCmts'] = None

        # set to None if long2nd_rnd_inj_cmts (nullable) is None
        # and model_fields_set contains the field
        if self.long2nd_rnd_inj_cmts is None and "long2nd_rnd_inj_cmts" in self.model_fields_set:
            _dict['Long2ndRndInjCmts'] = None

        # set to None if long_requestor_comments (nullable) is None
        # and model_fields_set contains the field
        if self.long_requestor_comments is None and "long_requestor_comments" in self.model_fields_set:
            _dict['LongRequestorComments'] = None

        # set to None if long_surgeon_comments (nullable) is None
        # and model_fields_set contains the field
        if self.long_surgeon_comments is None and "long_surgeon_comments" in self.model_fields_set:
            _dict['LongSurgeonComments'] = None

        # set to None if ml2nd_inj (nullable) is None
        # and model_fields_set contains the field
        if self.ml2nd_inj is None and "ml2nd_inj" in self.model_fields_set:
            _dict['ML2ndInj'] = None

        # set to None if modified (nullable) is None
        # and model_fields_set contains the field
        if self.modified is None and "modified" in self.model_fields_set:
            _dict['Modified'] = None

        # set to None if nd_roung_injection_comments (nullable) is None
        # and model_fields_set contains the field
        if self.nd_roung_injection_comments is None and "nd_roung_injection_comments" in self.model_fields_set:
            _dict['ndRoungInjectionComments'] = None

        # set to None if pedigree_name (nullable) is None
        # and model_fields_set contains the field
        if self.pedigree_name is None and "pedigree_name" in self.model_fields_set:
            _dict['PedigreeName'] = None

        # set to None if second_inj_recover (nullable) is None
        # and model_fields_set contains the field
        if self.second_inj_recover is None and "second_inj_recover" in self.model_fields_set:
            _dict['SecondInjRecover'] = None

        # set to None if second_injection_iso_duration (nullable) is None
        # and model_fields_set contains the field
        if self.second_injection_iso_duration is None and "second_injection_iso_duration" in self.model_fields_set:
            _dict['SecondInjectionIsoDuration'] = None

        # set to None if second_injection_weight_after (nullable) is None
        # and model_fields_set contains the field
        if self.second_injection_weight_after is None and "second_injection_weight_after" in self.model_fields_set:
            _dict['SecondInjectionWeightAfter'] = None

        # set to None if second_injection_weight_before (nullable) is None
        # and model_fields_set contains the field
        if self.second_injection_weight_before is None and "second_injection_weight_before" in self.model_fields_set:
            _dict['SecondInjectionWeightBefore'] = None

        # set to None if st_round_injection_comments (nullable) is None
        # and model_fields_set contains the field
        if self.st_round_injection_comments is None and "st_round_injection_comments" in self.model_fields_set:
            _dict['stRoundInjectionComments'] = None

        # set to None if start_x0020_of_x0020_week (nullable) is None
        # and model_fields_set contains the field
        if self.start_x0020_of_x0020_week is None and "start_x0020_of_x0020_week" in self.model_fields_set:
            _dict['Start_x0020_Of_x0020_Week'] = None

        # set to None if title (nullable) is None
        # and model_fields_set contains the field
        if self.title is None and "title" in self.model_fields_set:
            _dict['Title'] = None

        # set to None if touch_x0020_up_x0020__x0020_comp (nullable) is None
        # and model_fields_set contains the field
        if self.touch_x0020_up_x0020__x0020_comp is None and "touch_x0020_up_x0020__x0020_comp" in self.model_fields_set:
            _dict['Touch_x0020_Up_x0020__x0020_Comp'] = None

        # set to None if touch_x0020_up_x0020_weight_x002 (nullable) is None
        # and model_fields_set contains the field
        if self.touch_x0020_up_x0020_weight_x002 is None and "touch_x0020_up_x0020_weight_x002" in self.model_fields_set:
            _dict['Touch_x0020_Up_x0020_Weight_x002'] = None

        # set to None if ui_version_string (nullable) is None
        # and model_fields_set contains the field
        if self.ui_version_string is None and "ui_version_string" in self.model_fields_set:
            _dict['_UIVersionString'] = None

        # set to None if virus_x0020_a_x002f_p (nullable) is None
        # and model_fields_set contains the field
        if self.virus_x0020_a_x002f_p is None and "virus_x0020_a_x002f_p" in self.model_fields_set:
            _dict['Virus_x0020_A_x002f_P'] = None

        # set to None if virus_x0020_d_x002f_v (nullable) is None
        # and model_fields_set contains the field
        if self.virus_x0020_d_x002f_v is None and "virus_x0020_d_x002f_v" in self.model_fields_set:
            _dict['Virus_x0020_D_x002f_V'] = None

        # set to None if virus_x0020_m_x002f_l (nullable) is None
        # and model_fields_set contains the field
        if self.virus_x0020_m_x002f_l is None and "virus_x0020_m_x002f_l" in self.model_fields_set:
            _dict['Virus_x0020_M_x002f_L'] = None

        # set to None if weight_x0020_after_x0020_surgery (nullable) is None
        # and model_fields_set contains the field
        if self.weight_x0020_after_x0020_surgery is None and "weight_x0020_after_x0020_surgery" in self.model_fields_set:
            _dict['Weight_x0020_after_x0020_Surgery'] = None

        # set to None if weight_x0020_before_x0020_surger (nullable) is None
        # and model_fields_set contains the field
        if self.weight_x0020_before_x0020_surger is None and "weight_x0020_before_x0020_surger" in self.model_fields_set:
            _dict['Weight_x0020_before_x0020_Surger'] = None

        return _dict

    @classmethod
    def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
        """Create an instance of NSB2019List from a dict"""
        if obj is None:
            return None

        if not isinstance(obj, dict):
            return cls.model_validate(obj)

        _obj = cls.model_validate({
            "Age_x0020_at_x0020_Injection": obj.get("Age_x0020_at_x0020_Injection"),
            "AP2ndInj": obj.get("AP2ndInj"),
            "AuthorId": obj.get("AuthorId"),
            "Breg2Lamb": obj.get("Breg2Lamb"),
            "Cage": obj.get("Cage"),
            "_ColorTag": obj.get("_ColorTag"),
            "ComAfter1stInj": obj.get("ComAfter1stInj"),
            "ComAfter2ndInj": obj.get("ComAfter2ndInj"),
            "ComCoplanar": obj.get("ComCoplanar"),
            "ComDamage": obj.get("ComDamage"),
            "ComDuring1stInj": obj.get("ComDuring1stInj"),
            "ComDuring2ndInj": obj.get("ComDuring2ndInj"),
            "ComDurotomy": obj.get("ComDurotomy"),
            "ComSinusbleed": obj.get("ComSinusbleed"),
            "ComSwelling": obj.get("ComSwelling"),
            "ComWindow": obj.get("ComWindow"),
            "ComplianceAssetId": obj.get("ComplianceAssetId"),
            "Contusion": obj.get("Contusion"),
            "CraniotomyType": obj.get("CraniotomyType"),
            "Created": obj.get("Created"),
            "Date1stInjection": obj.get("Date1stInjection"),
            "Date2ndInjection": obj.get("Date2ndInjection"),
            "Date_x0020_of_x0020_Birth": obj.get("Date_x0020_of_x0020_Birth"),
            "Date_x0020_of_x0020_Surgery": obj.get("Date_x0020_of_x0020_Surgery"),
            "DateRangeEnd": obj.get("DateRangeEnd"),
            "DateRangeStart": obj.get("DateRangeStart"),
            "DV2ndInj": obj.get("DV2ndInj"),
            "EditorId": obj.get("EditorId"),
            "End_x0020_of_x0020_Week": obj.get("End_x0020_of_x0020_Week"),
            "Exudate_x0020_Severity": obj.get("Exudate_x0020_Severity"),
            "Eye_x0020_Affected": obj.get("Eye_x0020_Affected"),
            "Eye_x0020_Issue": obj.get("Eye_x0020_Issue"),
            "FiberImplant1": obj.get("FiberImplant1"),
            "FiberImplant1DV": obj.get("FiberImplant1DV"),
            "FiberImplant2": obj.get("FiberImplant2"),
            "FiberImplant2DV": obj.get("FiberImplant2DV"),
            "field30": obj.get("field30"),
            "field50": obj.get("field50"),
            "FirstInjRecovery": obj.get("FirstInjRecovery"),
            "FirstInjectionIsoDuration": obj.get("FirstInjectionIsoDuration"),
            "FirstInjectionWeightAfter": obj.get("FirstInjectionWeightAfter"),
            "FirstInjectionWeightBefor": obj.get("FirstInjectionWeightBefor"),
            "FirstRoundIontoIssue": obj.get("FirstRoundIontoIssue"),
            "HeadpostType": obj.get("HeadpostType"),
            "Hemisphere2ndInj": obj.get("Hemisphere2ndInj"),
            "HP_x0020_A_x002f_P": obj.get("HP_x0020_A_x002f_P"),
            "HP_x0020_Diameter": obj.get("HP_x0020_Diameter"),
            "HPDurotomy": obj.get("HPDurotomy"),
            "HP_x0020__x0026__x0020_Inj": obj.get("HP_x0020__x0026__x0020_Inj"),
            "HPIsoLevel": obj.get("HPIsoLevel"),
            "HpLoc": obj.get("HpLoc"),
            "HP_x0020_M_x002f_L": obj.get("HP_x0020_M_x002f_L"),
            "HpPerf": obj.get("HpPerf"),
            "HpPrevInject": obj.get("HpPrevInject"),
            "HPRecovery": obj.get("HPRecovery"),
            "_x0031_HP_x0020_Requestor_x0020_": obj.get("_x0031_HP_x0020_Requestor_x0020_"),
            "HPRequestorCommentsPlaintext": obj.get("HPRequestorCommentsPlaintext"),
            "HPSurgeonComments": obj.get("HPSurgeonComments"),
            "HpWorkStation": obj.get("HpWorkStation"),
            "IACUC_x0020_Protocol_x0020__x002": obj.get("IACUC_x0020_Protocol_x0020__x002"),
            "ID": obj.get("ID"),
            "ImplantIDCoverslipType": obj.get("ImplantIDCoverslipType"),
            "Inj1AlternatingTime": obj.get("Inj1AlternatingTime"),
            "Inj1Angle_v2": obj.get("Inj1Angle_v2"),
            "Inj1Current": obj.get("Inj1Current"),
            "Inj1LenghtofTime": obj.get("Inj1LenghtofTime"),
            "Inj1Round": obj.get("Inj1Round"),
            "Inj1StorageLocation": obj.get("Inj1StorageLocation"),
            "Inj1Type": obj.get("Inj1Type"),
            "Inj1VirusStrain_rt": obj.get("Inj1VirusStrain_rt"),
            "Inj1Vol": obj.get("Inj1Vol"),
            "Inj1angle0": obj.get("Inj1angle0"),
            "inj1volperdepth": obj.get("inj1volperdepth"),
            "Inj2AlternatingTime": obj.get("Inj2AlternatingTime"),
            "Inj2Angle_v2": obj.get("Inj2Angle_v2"),
            "Inj2Current": obj.get("Inj2Current"),
            "Inj2LenghtofTime": obj.get("Inj2LenghtofTime"),
            "Inj2Round": obj.get("Inj2Round"),
            "Inj2StorageLocation": obj.get("Inj2StorageLocation"),
            "Inj2Type": obj.get("Inj2Type"),
            "Inj2VirusStrain_rt": obj.get("Inj2VirusStrain_rt"),
            "Inj2Vol": obj.get("Inj2Vol"),
            "Inj2angle0": obj.get("Inj2angle0"),
            "inj2volperdepth": obj.get("inj2volperdepth"),
            "IontoNumberHPINJ": obj.get("IontoNumberHPINJ"),
            "IontoNumberInj1": obj.get("IontoNumberInj1"),
            "IontoNumberInj2": obj.get("IontoNumberInj2"),
            "Iso_x0020_On": obj.get("Iso_x0020_On"),
            "Issue": obj.get("Issue"),
            "LabTracks_x0020_Group": obj.get("LabTracks_x0020_Group"),
            "LabTracks_x0020_ID": obj.get("LabTracks_x0020_ID"),
            "LabTracks_x0020_Requestor": obj.get("LabTracks_x0020_Requestor"),
            "LIMs_x0020_Required": obj.get("LIMs_x0020_Required"),
            "Light_x0020_Cycle": obj.get("Light_x0020_Cycle"),
            "LIMStaskflow1": obj.get("LIMStaskflow1"),
            "LIMS_x0020_link": obj.get("LIMS_x0020_link"),
            "Lims_x0020_Project_x0020_Code": obj.get("Lims_x0020_Project_x0020_Code"),
            "Long1stRoundInjCmts": obj.get("Long1stRoundInjCmts"),
            "Long2ndRndInjCmts": obj.get("Long2ndRndInjCmts"),
            "LongRequestorComments": obj.get("LongRequestorComments"),
            "LongSurgeonComments": obj.get("LongSurgeonComments"),
            "ML2ndInj": obj.get("ML2ndInj"),
            "Modified": obj.get("Modified"),
            "NanojectNumberInj10": obj.get("NanojectNumberInj10"),
            "NanojectNumberInj2": obj.get("NanojectNumberInj2"),
            "ndRoungInjectionComments": obj.get("ndRoungInjectionComments"),
            "PedigreeName": obj.get("PedigreeName"),
            "Procedure": obj.get("Procedure"),
            "Project_x0020_ID_x0020__x0028_te": obj.get("Project_x0020_ID_x0020__x0028_te"),
            "retSetting0": obj.get("retSetting0"),
            "retSetting1": obj.get("retSetting1"),
            "Round1InjIsolevel": obj.get("Round1InjIsolevel"),
            "Round2InjIsolevel": obj.get("Round2InjIsolevel"),
            "Scabbing": obj.get("Scabbing"),
            "SecondInjRecover": obj.get("SecondInjRecover"),
            "SecondInjectionIsoDuration": obj.get("SecondInjectionIsoDuration"),
            "SecondInjectionWeightAfter": obj.get("SecondInjectionWeightAfter"),
            "SecondInjectionWeightBefore": obj.get("SecondInjectionWeightBefore"),
            "SecondRoundIontoIssue": obj.get("SecondRoundIontoIssue"),
            "Sex": obj.get("Sex"),
            "stRoundInjectionComments": obj.get("stRoundInjectionComments"),
            "Start_x0020_Of_x0020_Week": obj.get("Start_x0020_Of_x0020_Week"),
            "SurgeryStatus": obj.get("SurgeryStatus"),
            "Title": obj.get("Title"),
            "Touch_x0020_Up_x0020__x0020_Comp": obj.get("Touch_x0020_Up_x0020__x0020_Comp"),
            "Touch_x0020_Up_x0020_Status": obj.get("Touch_x0020_Up_x0020_Status"),
            "Touch_x0020_Up_x0020_Weight_x002": obj.get("Touch_x0020_Up_x0020_Weight_x002"),
            "_UIVersionString": obj.get("_UIVersionString"),
            "Virus_x0020_A_x002f_P": obj.get("Virus_x0020_A_x002f_P"),
            "Virus_x0020_D_x002f_V": obj.get("Virus_x0020_D_x002f_V"),
            "Virus_x0020_Hemisphere": obj.get("Virus_x0020_Hemisphere"),
            "Virus_x0020_M_x002f_L": obj.get("Virus_x0020_M_x002f_L"),
            "Weight_x0020_after_x0020_Surgery": obj.get("Weight_x0020_after_x0020_Surgery"),
            "Weight_x0020_before_x0020_Surger": obj.get("Weight_x0020_before_x0020_Surger"),
            "WorkStation1stInjection": obj.get("WorkStation1stInjection"),
            "WorkStation2ndInjection": obj.get("WorkStation2ndInjection")
        })
        # store additional fields in additional_properties
        for _key in obj.keys():
            if _key not in cls.__properties:
                _obj.additional_properties[_key] = obj.get(_key)

        return _obj


