#! /bin/python3
#### This is online for testing reasons only
from ..os_core.users import users
from ..os_core.specimen import specimen
from ..os_core.mandatory import mark_mandatory
from ..os_core.csv_bulk import csv_bulk
from ..os_core.visit import visit
from ..os_core.participant import participant
from ..os_core.collection_protocol import collection_protocol
from ..os_core.collection_protocol_registration import collection_protocol_registration
from ..os_core.collection_protocol_event import collection_protocol_event
from ..os_core.query import query
from ..os_core.jsons import Json_factory
from .cpevent_util import cpevent_util
from .bulk_operations import bulk_operations
from .query_util import query_util
from .cpr_util import cpr_util
from .visit_util import visit_util
import json
import pandas
import random
import numpy as np
from datetime import datetime
[docs]class aggregator():
def __init__(self):
self.jsons = Json_factory()
self.schemes = ['cp', 'specimen', 'cpr', 'user', 'userRoles', 'site', 'shipment',
'institute', 'dpRequirement', 'distributionProtocol', 'distributionOrder',
'storageContainer', 'storagecontainerType', 'containerShipment', 'cpe',
'masterSpecimen', 'participant', 'sr', 'visit', 'specimenAliquot',
'specimenDerivative', 'specimenDisposal', 'consent']
self.now = datetime.now()
[docs] def run_aggregation(self, sel_schema, ids=None):
"""
General purpose aggreation for fields in attached forms
under developement.
TODO: See which entities are stored with extension detail
-
and where to use''--_'
"""
cp_tools = collection_protocol()
csv_export = Export_OP()
if sel_schema == "cpr":
for i, cp_id in enumerate(ids):
up_cp_data = self.extract_age_fields(csv_export.export_file(sel_schema, cp_id),
cp_tools.get_collection_protocol(cp_id), cp_id)
r = cp_tools.update_collection_protocol(str(cp_id), json.dumps(up_cp_data))
if r.get("extensionDetail"):
print("Aggregation sucessfull")
else:
print("In this Demo the only fields to be aggregated are ",
"attached to Collection Protocols")