Beispiel #1
0
    def __init__(self):
        if not HospitalServerInfo.is_init:
            self.inhospital_pat_data = dict()
            self.inhospital_pat_num = dict()
            self.discharge_pat_data = dict()
            self.discharge_pat_num = dict()
            self.ward_code_list = list()

            self.mongo_pull_utils = PullDataFromMDBUtils()
            self.logger = LogUtils().getLogger('backend')

            self.parameters = Properties()
            self.conf_dict = self.parameters.conf_dict.copy()
            self.dept_dict = self.parameters.dept_dict.copy()
            self.ward_dept = self.parameters.ward_dept.copy()
            self.hospital_code = self.parameters.properties.get(
                'hospital_code')
            self.database_ip = self.parameters.properties.get('mongo_host')
            if cur_path.endswith('Test'):
                self.mr_client_url = self.conf_dict['mr_url'].get(
                    self.database_ip, dict()).get('test', '')
                self.collection_name_doctor = self.mongo_pull_utils.mongodb_collection_name_doctor + '_test'  # 医生端数据库
            else:
                self.mr_client_url = self.conf_dict['mr_url'].get(
                    self.database_ip, dict()).get('release', '')
                self.collection_name_doctor = self.mongo_pull_utils.mongodb_collection_name_doctor
            if not self.ward_code_list:
                self.ward_code_list = self.get_ward_code()
            HospitalServerInfo.is_init = True
 def __init__(self, regular_code, step):
     regular_model = Properties().regular_model[step].copy()
     self.code = ''
     self.regular_name = ''
     self.regular_details = ''
     self.record_name = ''
     self.score = 0
     self.dept = ''
     self.setup = ''
     self.switch = ''
     self.degree = ''
     self.step = step
     if regular_code in regular_model:
         v = regular_model[regular_code]
         self.code = regular_code
         if len(v) > 0:
             self.regular_name = v[0]
         if len(v) > 1:
             self.regular_details = v[1]
         if len(v) > 2:
             record_name = v[2].split('--')[0]
             self.record_name = record_name
         if len(v) > 3:
             self.score = v[3]
         if len(v) > 4:
             self.dept = v[4]
         if len(v) > 5:
             self.setup = v[5]
         if len(v) > 6:
             self.switch = v[6]
         if len(v) > 7:
             self.degree = v[7]
    def __init__(self, debug=False):
        self.debug = debug

        # region 从properties文件中获取资源配置信息
        self.parameters = Properties()
        self.logger = LogUtils().getLogger("MongoUtils")
        self.mongodb_host = self.parameters.properties.get('mongo_host')
        self.mongodb_port = eval(self.parameters.properties.get('mongo_port'))
        self.mongodb_database_name = self.parameters.properties.get('mongodb')
        self.mongodb_collection_name = self.parameters.properties.get('collection_name')
        self.mongodb_collection_name_doctor = '{}_doctor'.format(self.mongodb_collection_name)
        self.username_wr = self.parameters.properties.get('username_write_read')
        self.password_wr = self.parameters.properties.get('password_write_read')
        self.record_host = self.parameters.properties.get('record_host')
        self.record_port = eval(self.parameters.properties.get('record_port'))
        self.record_database = self.parameters.properties.get('record_mongodb')
        # endregion

        # 数据库的连接操作
        self.client = MongoClient(host=self.mongodb_host, port=self.mongodb_port, connect=False)
        self.record_client = MongoClient(host=self.record_host, port=self.record_port, connect=False)
        self.record_db = self.record_client.get_database(name=self.record_database)
        if self.parameters.properties.get('record_auth') in ['true', 'True']:
            username = self.parameters.properties.get('record_username')
            password = self.parameters.properties.get('record_password')
            self.record_db.authenticate(username, password)
        self.authed = False
Beispiel #4
0
def runZhongmo():
    """
    每天更新终末库数据
    """
    app = CheckMultiRecords(debug=True)
    logger = LogUtils().getLogger('scheduledTasks')
    parameter = Properties()
    try:
        day_delta = int(parameter.properties.get('extract_interval',
                                                 '1')) + 1  # 质控比抽取间隔要多一天
        today = datetime.now()
        yesterday = today - timedelta(day_delta)
        if today.day == 1:
            collection_ori = app.PushData.mongodb_collection_name + '_last_two_month'
            rename_collection = app.PushData.mongodb_collection_name + '_last_two_month_bak'
            collection = app.PushData.connectCollection(
                database_name=app.PushData.mongodb_database_name,
                collection_name=collection_ori)
            try:
                collection.rename(rename_collection, dropTarget=True)
            except:
                logger.warning('No collection {0}'.format(collection_ori))

            collection_ori = app.PushData.mongodb_collection_name + '_last_month'
            rename_collection = app.PushData.mongodb_collection_name + '_last_two_month'
            collection = app.PushData.connectCollection(
                database_name=app.PushData.mongodb_database_name,
                collection_name=collection_ori)
            try:
                collection.rename(rename_collection, dropTarget=True)
            except:
                logger.warning('No collection {0}'.format(collection_ori))

            collection_ori = app.PushData.mongodb_collection_name + '_this_month'
            rename_collection = app.PushData.mongodb_collection_name + '_last_month'
            collection = app.PushData.connectCollection(
                database_name=app.PushData.mongodb_database_name,
                collection_name=collection_ori)
            try:
                collection.rename(rename_collection, dropTarget=True)
            except:
                logger.warning('No collection {0}'.format(collection_ori))
        app.time_limits = {
            "binganshouye.pat_visit.discharge_time": {
                "$gte": yesterday.strftime('%Y-%m-%d')
            }
        }
        app.PushData.mongodb_collection_name += '_zhongmo'
        app.process(True)
        app.process_supplement(collection_name=parameter.properties.get(
            'collection_name', 'MedicalRecordQuality'))  # 只存终末的三个月数据
        return True
    except:
        logger.error(traceback.format_exc())
        return False
 def __init__(self):
     if not GainSynonym.is_init:
         self.parameters = Properties()
         self.logger = LogUtils().getLogger('synonym')
         self.log_info = """hospital_code: [{0}], version: [{1}], serverip: [{2}], request_add: [{3}], request_data: [{4}],
         response_text: [{5}], response_code: [{6}], error_type: [{7}], error_content: [{8}], abnormal_info: [\n{9}], take_times: [{10:.2f}]s"""
         self.hospital_code = self.parameters.properties.get('hospital_code')
         self.ver = self.parameters.properties.get('version')
         self.synonym_host = self.parameters.properties.get('synonym_host')
         self.synonym_port = self.parameters.properties.get('synonym_port')
         GainSynonym.is_init = True
Beispiel #6
0
 def __init__(self):
     if not GainKnowledgeGraph.IS_INIT:
         self.parameters = Properties()
         self.logger = LogUtils().getLogger('es_search')
         self.log_info = """hospital_code: [{0}], version: [{1}], serverip: [{2}], request_add: [{3}], request_data: [{4}],
         response_text: [{5}], response_code: [{6}], error_type: [{7}], error_content: [{8}], abnormal_info: [\n{9}], take_times: [{10:.2f}]s"""
         knowledge_host = self.parameters.properties.get('knowledge_host')
         knowledge_port = self.parameters.properties.get('knowledge_port')
         self.hospital_code = self.parameters.properties.get('hospital_code')
         self.ver = self.parameters.properties.get('version')
         self.standard_add = 'http://{}:{}/med/cdss/standardFromAliasList.json'.format(knowledge_host, knowledge_port)
         self.relationship_add = 'http://{}:{}/med/cdss/isFatherOrSon.json'.format(knowledge_host, knowledge_port)
         self.medicine_add = 'http://{}:{}/med/edit/searchKnowledge.json'.format(knowledge_host, knowledge_port)
         GainKnowledgeGraph.IS_INIT = True
Beispiel #7
0
 def __init__(self):
     if not GainESSearch.IS_INIT:
         self.parameters = Properties()
         self.logger = LogUtils().getLogger('es_search')
         self.log_info = """hospital_code: [{0}], version: [{1}], serverip: [{2}], request_add: [{3}], request_data: [{4}],
         response_text: [{5}], response_code: [{6}], error_type: [{7}], error_content: [{8}], abnormal_info: [\n{9}], take_times: [{10:.2f}]s"""
         es_host = self.parameters.properties.get('es_host')
         es_port = self.parameters.properties.get('es_port')
         self.hospital_code = self.parameters.properties.get('hospital_code')
         self.ver = self.parameters.properties.get('version')
         if es_port == '0':
             es_add = "{}/search/bysy".format(es_host)
         else:
             es_add = "{}:{}".format(es_host, es_port)
         self.id_add = 'http://{}/med/advanced/allVariableJilian.json'.format(es_add)
         self.record_add = 'http://{}/med/quality/getWenshuData.json'.format(es_add)
         self.record_list_add = 'http://{}/med/advanced/query/patients.json'.format(es_add)
         GainESSearch.IS_INIT = True
Beispiel #8
0
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'MedicalRecordQuality.wsgi.application'

# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
DATABASE_NAME = Properties().properties.get('mongodb')
DATABASE_HOST = Properties().properties.get('mongo_host')
DATABASE_PORT = int(Properties().properties.get('mongo_port'))
DATABASE_USERNAME = Properties().properties.get('username_write_read')
DATABASE_PASSWORD = Properties().properties.get('password_write_read')
if Properties().properties.get('mongo_auth') == 'true' or Properties(
).properties.get('mongo_auth') == 'True':
    DATABASES = {
        'default': {
            'ENGINE': 'djongo',
            'ENFORCE_SCHEMA': True,
            'NAME': DATABASE_NAME,
            'HOST': DATABASE_HOST,
            'PORT': DATABASE_PORT,
            'USER': DATABASE_USERNAME,
            'PASSWORD': DATABASE_PASSWORD,