Skip to content

Commit b1afe95

Browse files
author
stephanie
committed
update result, adjust valuecount assignement
1 parent bea2e0c commit b1afe95

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

odmtools/odmservices/edit_service.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -510,13 +510,13 @@ def save_appending(self, result, overwrite=True):
510510
vc = result.ValueCount
511511
# set in df
512512
values["resultid"] = result.ResultID
513-
# update result
514-
self.updateResult(result)
513+
515514
# count = overlap calc
516515
count = self.overlapcalc(result, values, overwrite)
517516
# set value count = res.vc+valuecount-count
518-
result.ValueCount = result.ValueCount + vc - count
519-
self.memDB.series_service.update.updateResult(result.ResultID, result.ValueCount)
517+
valuecount = result.ValueCount + vc - count
518+
# update result
519+
self.updateResult(result, valuecount)
520520
# insert values
521521
self.memDB.series_service.upsert_values(values)
522522
# save new annotations
@@ -618,7 +618,7 @@ def getResult(self, var, meth, proc, action, action_by):
618618
return self.updateResult(result)
619619

620620

621-
def updateResult(self, result):
621+
def updateResult(self, result, valuecount = -10):
622622
form = "%Y-%m-%d %H:%M:%S"
623623
# get pd
624624
values = self.memDB.getDataValuesDF()
@@ -627,7 +627,12 @@ def updateResult(self, result):
627627
action = result.FeatureActionObj.ActionObj
628628
action.BeginDateTime= datetime.datetime.strptime(str(np.min(values['valuedatetime'])), form)
629629
action.EndDateTime = datetime.datetime.strptime(str(np.max(values["valuedatetime"])), form)
630-
result.ValueCount = len(values)
630+
if valuecount > 0 :
631+
result.ValueCount=valuecount
632+
else:
633+
result.ValueCount = len(values)
634+
635+
setSchema(self.memDB.series_service._session_factory.engine)
631636
self.memDB.series_service.update.updateResult(result.ResultID, result.ValueCount)
632637
self.memDB.series_service.update.updateAction(actionID=action.ActionID, begin=action.BeginDateTime, end=action.EndDateTime)
633638

@@ -641,7 +646,7 @@ def overlapcalc(self, result, values, overwrite):
641646
dfstart = datetime.datetime.strptime(str(np.min(values["valuedatetime"])), form)
642647
overlap = dbend>= dfstart
643648
#number of overlapping values
644-
overlapdf = values[(values["valuedatetime"]>= dfstart) & (values["valudatetime"]<= dbend)]
649+
overlapdf = values[(values["valuedatetime"]<= dfstart) & (values["valuedatetime"]>= dbend)]
645650
count =len(overlapdf)
646651
#if not overwrite. remove any overlapping values from df
647652
if overlap:

odmtools/odmservices/series_service.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,7 @@ def get_current_time_and_utcoffset(self):
631631
def insert_annotations(self, annotations):
632632
annotations.to_sql(name="timeseriesresultvalueannotations", if_exists='append', con=self._session_factory.engine, index=False)
633633

634+
634635
def _get_df_query(self, values):
635636

636637
resid = str(values['resultid'][0])

0 commit comments

Comments
 (0)