Include the PI name on the study model

This commit is contained in:
alicia pritchett 2022-03-18 11:03:06 -04:00
parent ed94241069
commit 12a0e26ee1
3 changed files with 40 additions and 2 deletions

View File

@ -67,6 +67,7 @@ class StudyModel(db.Model):
events_history = db.relationship("StudyEvent", cascade="all, delete, delete-orphan")
short_name = db.Column(db.String, nullable=True)
proposal_name = db.Column(db.String, nullable=True)
primary_investigator = db.Column(db.String, nullable=True)
def update_from_protocol_builder(self, study: ProtocolBuilderCreatorStudy, user_id):
self.title = study.TITLE
@ -206,7 +207,8 @@ class Study(object):
comment="",
sponsor="", ind_number="", categories=[],
files=[], approvals=[], enrollment_date=None, events_history=[],
last_activity_user="", last_activity_date=None, create_user_display="", **argsv):
last_activity_user="", last_activity_date=None, create_user_display="",
primary_investigator="", **argsv):
self.id = id
self.user_uid = user_uid
self.create_user_display = create_user_display
@ -230,6 +232,7 @@ class Study(object):
self.events_history = events_history
self.short_name = short_name
self.proposal_name = proposal_name
self.primary_investigator = primary_investigator
@classmethod
def from_model(cls, study_model: StudyModel):
@ -291,13 +294,14 @@ class StudySchema(ma.Schema):
events_history = fields.List(fields.Nested('StudyEventSchema'), dump_only=True)
short_name = fields.String(allow_none=True)
proposal_name = fields.String(allow_none=True)
primary_investigator = fields.String(allow_none=True)
class Meta:
model = Study
additional = ["id", "title", "short_title", "last_updated", "primary_investigator_id", "user_uid",
"sponsor", "ind_number", "files", "enrollment_date",
"create_user_display", "last_activity_date", "last_activity_user",
"events_history", "short_name", "proposal_name"]
"events_history", "short_name", "proposal_name", "primary_investigator"]
unknown = INCLUDE
@marshmallow.post_load

View File

@ -108,6 +108,12 @@ class StudyService(object):
category_meta = StudyService._update_status_of_category_meta(master_workflow_results, category)
category.workflows = workflow_metas
category.meta = category_meta
if study.primary_investigator is None:
associates = StudyService().get_study_associates(study.id)
for associate in associates:
if associate.role == "Primary Investigator":
study.primary_investigator = associate.ldap_info.display_name
return study
@staticmethod

View File

@ -0,0 +1,28 @@
"""empty message
Revision ID: f93185c45e75
Revises: 28752ce0775c
Create Date: 2022-03-18 10:20:05.815435
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'f93185c45e75'
down_revision = '28752ce0775c'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('study', sa.Column('primary_investigator', sa.String(), nullable=True))
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('study', 'primary_investigator')
# ### end Alembic commands ###