Ejemplo n.º 1
0
def hosp_get_transfers_data(hosp_nums_obj):
    titles_field = ['Дата перевода', 'Время перевода']
    date_transfer_value, time_transfer_value = '', ''
    transfers = []
    list_values = None
    for i in range(len(hosp_nums_obj)):
        if i == 0:
            continue

        transfer_research_title = hosp_nums_obj[i].get('research_title')
        # получить для текущего hosp_dir эпикриз с title - перевод.....
        from_hosp_dir_transfer = hosp_nums_obj[i - 1].get('direction')
        epicrisis_data = hosp_get_data_direction(from_hosp_dir_transfer, site_type=6, type_service='None', level=2)
        if epicrisis_data:
            result_check = check_transfer_epicrisis(epicrisis_data)
            if result_check['iss']:
                iss_transfer, research_id_transfer = result_check['iss'], result_check['research_id']
                if titles_field and iss_transfer:
                    list_values = get_result_value_iss(iss_transfer, research_id_transfer, titles_field)
            else:
                continue
        if list_values:
            for i in list_values:
                if i[3] == 'Дата перевода':
                    date_transfer_value = normalize_date(i[2])
                    continue
                if i[3] == 'Время перевода':
                    time_transfer_value = i[2]
                    continue

        transfers.append({'transfer_research_title': transfer_research_title, 'date_transfer_value': date_transfer_value, 'time_transfer_value': time_transfer_value})

    return transfers
Ejemplo n.º 2
0
def hosp_get_clinical_diagnos(hosp_obj):
    clinic_diagnos = ''
    tmp_clinic_diagnos = []
    for i in hosp_obj:
        hosp_diagnostic_epicris = hosp_get_data_direction(i['direction'], site_type=6, type_service='None', level=2)
        day_entries_iss = []
        day_entries_research_id = None
        if hosp_diagnostic_epicris:
            for i in hosp_diagnostic_epicris:
                # найти эпикризы диагностические
                if i.get('research_title').lower().find('диагностич') != -1:
                    day_entries_iss.append(i.get('iss'))
                    if not day_entries_research_id:
                        day_entries_research_id = i.get('research_id')
        titles_field = ['Диагноз клинический', 'Дата установления диагноза', 'Основной', 'Осложнение', 'Сопутствующий']
        list_values = []
        if titles_field and day_entries_iss:
            for i in day_entries_iss:
                list_values.append(get_result_value_iss(i, day_entries_research_id, titles_field))

        if list_values:
            for fields in list_values:
                clinical_data = {'clinic_diagnos': '', 'main_diagnos': '', 'other_diagnos': '', 'near_diagnos': '', 'date': ''}
                for i in fields:
                    if i[3] == 'Дата установления диагноза':
                        clinical_data['date'] = normalize_date(i[2])
                        continue
                    if i[3] == 'Диагноз клинический':
                        clinical_data['clinic_diagnos'] = i[2]
                        continue
                    if i[3] == 'Основной':
                        clinical_data['main_diagnos'] = f"Основной: {i[2]}"
                        continue
                    if i[3] == 'Осложнение':
                        clinical_data['other_diagnos'] = f"; Осложнение: {i[2]}"
                        continue
                    if i[3] == 'Сопутствующий':
                        clinical_data['near_diagnos'] = f"; Сопутствующий: {i[2]}"
                        continue
                if clinical_data['date'] and (clinical_data['clinic_diagnos'] or clinical_data['main_diagnos']):
                    tmp_clinic_diagnos.append(clinical_data.copy())

    for i in tmp_clinic_diagnos:
        clinic_diagnos = f"{clinic_diagnos}{i['clinic_diagnos']} <u>{i['main_diagnos']}</u>{i['other_diagnos']}{i['near_diagnos']}; дата: {i['date']}<br/>"

    return clinic_diagnos
Ejemplo n.º 3
0
def hosp_extract_get_data(hosp_last_num):
    # Получение данных из выписки
    hosp_extract = hosp_get_data_direction(hosp_last_num, site_type=7, type_service='None', level=2)
    if not hosp_extract:
        return {}
    hosp_extract_iss, extract_research_id, doc_confirm = None, None, None
    if hosp_extract:
        hosp_extract_iss = hosp_extract[0].get('iss')
        doc_confirm = Issledovaniya.objects.get(pk=hosp_extract_iss).doc_confirmation
        if not doc_confirm:
            return {}
        extract_research_id = hosp_extract[0].get('research_id')

    titles_field = [
        'Время выписки',
        'Дата выписки',
        'Основной диагноз (описание)',
        'Основной диагноз по МКБ',
        'Осложнение основного диагноза (описание)',
        'Осложнение основного диагноза по МКБ',
        'Сопутствующий диагноз (описание)',
        'Сопутствующий диагноз по МКБ',
        'Исход госпитализации',
        'Результат госпитализации',
        'Проведено койко-дней',
        'Заведующий отделением',
        'Палата №',
    ]
    list_values = None
    if titles_field and hosp_extract:
        list_values = get_result_value_iss(hosp_extract_iss, extract_research_id, titles_field)
    date_value, time_value = '', ''
    final_diagnos, other_diagnos, near_diagnos, outcome, final_diagnos_mkb, other_diagnos_mkb, near_diagnos_mkb = '', '', '', '', '', '', ''
    days_count, result_hospital, manager_depart, room_num = '', '', '', ''

    if list_values:
        for i in list_values:
            if i[3] == 'Дата выписки':
                date_value = normalize_date(i[2])
            if i[3] == 'Время выписки':
                time_value = i[2]
            if i[3] == 'Основной диагноз (описание)':
                final_diagnos = i[2]
            if i[3] == 'Осложнение основного диагноза (описание)':
                other_diagnos = i[2]
            if i[3] == 'Сопутствующий диагноз (описание)':
                near_diagnos = i[2]
            if i[3] == 'Исход госпитализации':
                outcome = i[2]
            if i[3] == 'Результат госпитализации':
                result_hospital = i[2]
            if i[3] == 'Основной диагноз по МКБ':
                final_diagnos_mkb = str(i[2])
            if i[3] == 'Осложнение основного диагноза по МКБ':
                other_diagnos_mkb = str(i[2]).split(' ')[0]
            if i[3] == 'Сопутствующий диагноз по МКБ':
                near_diagnos_mkb = str(i[2]).split(' ')[0]
            if i[3] == 'Проведено койко-дней':
                days_count = str(i[2])
            if i[3] == 'Заведующий отделением':
                manager_depart = str(i[2])
            if i[3] == 'Палата №':
                room_num = str(i[2])

    doc_fio = doc_confirm.get_fio()
    return {
        'date_value': date_value,
        'time_value': time_value,
        'final_diagnos': final_diagnos,
        'other_diagnos': other_diagnos,
        'near_diagnos': near_diagnos,
        'outcome': outcome,
        'final_diagnos_mkb': final_diagnos_mkb,
        'other_diagnos_mkb': other_diagnos_mkb,
        'near_diagnos_mkb': near_diagnos_mkb,
        'extract_iss': hosp_extract_iss,
        'days_count': days_count,
        'result_hospital': result_hospital,
        'doc_fio': doc_fio,
        'manager_depart': manager_depart,
        'room_num': room_num,
    }
Ejemplo n.º 4
0
def primary_reception_get_data(hosp_first_num):
    # Получение данных из певичного приема
    hosp_primary_receptions = hosp_get_data_direction(hosp_first_num, site_type=0, type_service='None', level=2)
    hosp_primary_iss, primary_research_id = None, None
    if hosp_primary_receptions:
        hosp_primary_iss = hosp_primary_receptions[0].get('iss')
        primary_research_id = hosp_primary_receptions[0].get('research_id')

    titles_field = [
        'Дата поступления',
        'Время поступления',
        'Виды транспортировки',
        'Побочное действие лекарств (непереносимость)',
        'Кем направлен больной',
        'Вид госпитализации',
        'Время через, которое доставлен после начала заболевания, получения травмы',
        'Диагноз направившего учреждения',
        'Диагноз при поступлении',
        'Госпитализирован по поводу данного заболевания',
        'Общее состояние',
        'Социальный статус',
        'Категория льготности',
        'Всего госпитализаций',
        'Вид травмы',
        'Группа крови',
        'Резус принадлежность',
        'Вес',
    ]
    list_values = None
    if titles_field and hosp_primary_receptions:
        list_values = get_result_value_iss(hosp_primary_iss, primary_research_id, titles_field)

    date_entered_value, time_entered_value, type_transport, medicament_allergy = '', '', '', ''
    who_directed, plan_hospital, extra_hospital, type_hospital = '', '', '', ''
    time_start_ill, diagnos_who_directed, diagnos_entered = '', '', ''
    what_time_hospitalized, state, social_status, category_privilege = '', '', '', ''
    all_hospitalized, type_trauma, blood_group, resus_factor = '', '', '', ''
    weight = ''

    if list_values:
        for i in list_values:
            if i[3] == 'Дата поступления':
                date_entered_value = normalize_date(i[2])
                continue
            if i[3] == 'Время поступления':
                time_entered_value = i[2]
                continue
            if i[3] == 'Виды транспортировки':
                type_transport = i[2]
                continue
            if i[3] == 'Побочное действие лекарств (непереносимость)':
                medicament_allergy = i[2]
                continue
            if i[3] == 'Кем направлен больной':
                who_directed = i[2]
                continue
            if i[3] == 'Вид госпитализации':
                type_hospital = i[2]
            if type_hospital.lower() == 'экстренная':
                time_start_ill_obj = get_result_value_iss(hosp_primary_iss, primary_research_id, ['Время через, которое доставлен после начала заболевания, получения травмы'])
                if time_start_ill_obj:
                    time_start_ill = time_start_ill_obj[0][2]
                extra_hospital = "Да"
                plan_hospital = "Нет"
            else:
                plan_hospital = "Да"
                extra_hospital = "Нет"
                time_start_ill = ''
            if i[3] == 'Диагноз направившего учреждения':
                diagnos_who_directed = i[2]
                continue
            if i[3] == 'Диагноз при поступлении':
                diagnos_entered = i[2]
                continue
            if i[3] == 'Госпитализирован по поводу данного заболевания':
                what_time_hospitalized = i[2]
                continue
            if i[3] == 'Общее состояние':
                state = i[2]
                continue
            if i[3] == 'Социальный статус':
                social_status = i[2]
                continue
            if i[3] == 'Категория льготности':
                category_privilege = i[2]
                continue
            if i[3] == 'Всего госпитализаций':
                all_hospitalized = i[2]
                continue
            if i[3] == 'Вид травмы':
                type_trauma = i[2]
                continue
            if i[3] == 'Группа крови':
                blood_group = i[2]
                continue
            if i[3] == 'Резус принадлежность':
                resus_factor = i[2]
                continue
            if i[3] == 'Вес':
                weight = i[2]
                continue

    return {
        'date_entered_value': date_entered_value,
        'time_entered_value': time_entered_value,
        'type_transport': type_transport,
        'medicament_allergy': medicament_allergy,
        'who_directed': who_directed,
        'plan_hospital': plan_hospital,
        'extra_hospital': extra_hospital,
        'type_hospital': type_hospital,
        'time_start_ill': time_start_ill,
        'diagnos_who_directed': diagnos_who_directed,
        'diagnos_entered': diagnos_entered,
        'what_time_hospitalized': what_time_hospitalized,
        'state': state,
        'social_status': social_status,
        'category_privilege': category_privilege,
        'all_hospitalized': all_hospitalized,
        'type_trauma': type_trauma,
        'blood_group': blood_group,
        'resus_factor': resus_factor,
        'weight': weight,
    }