Пример #1
0
    def get_basic_info(self):
        sfzh, blh, jzkh, xm, csrq = self.basic_info
        out_data = []
        sql = '''select sfzh , bah as blh, jzkh, xm, csrq, ldrq from gy_brjbxxk where '''
        if sfzh:
            sfzh_sql = sql + "sfzh='{}'".format(sfzh)
            out_data.extend(self.fetch(sfzh_sql))
        if blh:
            blh_sql = sql + "bah='{}'".format(blh)
            out_data.extend(self.fetch(blh_sql))
        if jzkh:
            jzkh_sql = sql + "jzkh='{}'".format(jzkh)
            out_data.extend(self.fetch(jzkh_sql))
        if xm:
            xm_rq_sql = sql + "xm='{}'".format(xm)
            tem_data = [
                row_data for row_data in self.fetch(xm_rq_sql)
                if filter_data(self.basic_info, row_data)
            ]
            out_data.extend(tem_data)

        seen = set()
        new_data = []
        for i in out_data:
            if i['jzkh'] not in seen:
                seen.add(i['jzkh'])
                new_data.append(i)
        return new_data
Пример #2
0
 def get_base_info(self):
     sfzh, blh, jzkh, xm, csrq = self.base_info
     sql = BASE_SQL.format(blh, jzkh, xm)
     out_data = [
         row_data for row_data in self.fetch(sql)
         if filter_data(self.base_info, row_data)
     ]
     return out_data
Пример #3
0
    def start(self, base_info):
        name = base_info[3]
        blh = base_info[1]

        blh_set = set(self.search_patient_with_name(name))
        blh_array = [
            i for i in blh_set if filter_data(base_info, self.patient_info(i))
        ]  # 过滤数据
        if blh: blh_array.append(blh)
        result = [self.get_data(i) for i in set(blh_array) if i]

        return result
Пример #4
0
    def start(self, base_info):
        name = base_info[3]
        blh = base_info[1]

        blh_array = self.get_data(name)
        if blh: blh_array.append(blh)
        result = []
        for i in set(blh_array):
            for para in set(self.get_data(i)):
                detail_data, main_info = self.get_detail(para)
                if filter_data(base_info, main_info):  # 过滤数据
                    result.append(detail_data)
        return result
Пример #5
0
 def filter_valid(self, idx, blh):
     resp = self._session.get(
         self._host +
         '/zwemr/Doctors/BingAnShouYeView1.aspx?state=1&zyxh={}&bah={}&gh={}'
         .format(idx, blh, self._user))
     doc = etree.HTML(resp.text)
     xm = ''.join(doc.xpath('//*[@id="_ctl0_C1_LabName"]//text()')).strip()
     sfzh = ''.join(
         doc.xpath('//*[@id="_ctl0_C1_LabIDcard"]//text()')).strip()
     csrq = ''.join(
         doc.xpath('//*[@id="_ctl0_C1_LabCsrq"]//text()')).strip()
     if not filter_data(self.base_info, (sfzh, blh, None, xm, csrq)):
         return
     return doc
Пример #6
0
 def check_patient(self, doc):
     """数据验证"""
     url = self.host + '/app-station-manage/medicalRecord/getInpatientInfo'
     json_data = {
         "inpatientId": doc['inhospitalPatientId'],
         "masterPatientIndex": doc['masterPatientIndex'],
         "type": '2',
     }
     response = requests.post(url, headers=self.authorize, json=json_data)
     result = response.json()
     data = result['body']
     if result['code'] == 2000 and data:
         base_info = (data['idCardNo'], data['medicalRecordNo'], '',
                      data['patientName'], data['birthdate'])
         if filter_data(self.source_info, base_info):
             patientInfo = {
                 30101:
                 data['patientName'],
                 30102:
                 data['gender'],
                 30104:
                 data['medicalRecordNo'],
                 30110:
                 data['birthdate'],
                 30178:
                 data['age'],
                 30111:
                 data['countryName'],
                 30117:
                 data['nationDesc'],
                 30119:
                 data['idCardNo'],
                 30106:
                 None,  # 医疗保险支付方式
                 30107:
                 data['costTypeName'],
                 30115:
                 data['professionDesc'],
                 30118:
                 data['marriageStatusDesc'],
                 30120:
                 data['presentAddress'],
                 # 30126: p_2('TxtDwdh'),  # 单位电话
                 30121:
                 data['workName'],
                 30122:
                 data['workAddress'],
                 30128:
                 data['hospitalizedWayDesc'],
                 30129:
                 data['hospitalizedDate'],
                 30133:
                 data['hospitalizedMainDiagnose'],
                 30182:
                 3,  # 数据来源
                 30131:
                 data['outHospitalDate'],
                 30130:
                 data['hospitalDays'],
                 30136:
                 data['injuryPoisoningReason'],
                 30138:
                 None,
                 # 30139: p_2('TxtBlh'),  # 病理号
                 30174:
                 data['aboType'],
                 30140:
                 data['hbsAg'],  # 0:阴性 1:阳性 null:未做
                 30141:
                 data['hcvAb'],
                 30142:
                 data['hivAb'],
                 30143:
                 data['tpha'],
                 30144:
                 data['infectiousReport'],
                 30175:
                 data['rhType'],
                 30137:
                 data['allgergyDesc'],
                 30173:
                 data['outHospitalWay'],
                 30176:
                 data['hospitalizedAgain'],
                 30177:
                 '入院前: {}'.format(data['beforeHospitalizedComa']) +
                 '入院后: {}'.format(data['afterHospitalizedComa']),
                 'lxr': [{
                     30124: data['linkmanName'],
                     30125: data['linkmanAddress'],
                     30126: data['linkmanPhoneNo'],
                     30180: data['linkTypeName']
                 }],
             }
             index_id = data['id']
             return patientInfo, index_id
     return '', False