@ -217,6 +217,39 @@ def send_registration_request():
@webApp . route ( ' /request_patient ' , methods = [ ' POST ' ] )
def request_patient_information ( ) :
try :
# return {
# "fio": "Чистогов Илья Дмитриевич",
# "formatted_birthdate": "24.09.2003",
# "js_formatted_passport_date": "2016-09-25",
# "js_formatted_birthdate": "2003-09-24",
# "pct_doc_ser": "1234",
# "pct_doc_nom": "123456",
# "pct_doc_org_kod": "590-003",
# "pct_doc_org_name": "ГУ МВД РОССИИ ПО ПЕРМСКОМУ КРАЮ",
# "pct_email": "1@1.ru",
# "pct_inn": "123123123123",
# "taxpayer_status_zapros": "Отец",
# "pct_doc_ind": "1",
# "server_data": {
# "pct_birthday": "2003-09-24T00:00:00.000Z",
# "pct_doc_date": "",
# "pct_doc_ind": "",
# "pct_doc_nom": "",
# "pct_doc_org_kod": "",
# "pct_doc_org_name": "",
# "pct_doc_ser": "",
# "pct_doc_type": "",
# "pct_email": "",
# "pct_first_name": "Илья",
# "pct_inn": "",
# "pct_last_name": "Чистогов",
# "pct_second_name": "Дмитриевич",
# "result": "OK",
# "status_code": 200
# },
# "success": True,
# "user_id": "766945900"
# }
data = request . get_json ( )
@ -247,7 +280,7 @@ def request_patient_information():
}
print ( payload )
headers = { " User-Agent " : " Mozilla/5.0 " , " Content-Type " : " application/json " }
url = " http://192.168.1.10:8081 /AppZaprSvedPac "
url = " http://192.168.1.10:8080 /AppZaprSvedPac "
response = requests . post ( url , json = payload , headers = headers )
if response . status_code == 200 :
@ -375,7 +408,7 @@ def sending_patient_data():
#Успешный ответ
HEADER1 = { " User-Agent " : " Mozilla/5.0 " , " Content-Type " : " application/json " }
try :
response = requests . post ( " http://192.168.1.10:8081 /AppSaveSvedPac " , headers = HEADER1 , json = data1 , timeout = 5 )
response = requests . post ( " http://192.168.1.10:8080 /AppSaveSvedPac " , headers = HEADER1 , json = data1 , timeout = 5 )
print ( " Ответ сервера: " , response . text ) # вдруг сервер всё же что-то вернёт
if response . status_code == 200 :
return jsonify ( { ' success ' : True } )
@ -396,6 +429,291 @@ def sending_patient_data():
@webApp . route ( ' /request_patient2 ' , methods = [ ' POST ' ] )
def request_patient2 ( ) :
try :
# return {
# "fio": "Чистогов Илья Дмитриевич",
# "formatted_birthdate": "24.09.2003",
# "js_formatted_passport_date": "2016-09-25",
# "js_formatted_birthdate": "2003-09-24",
# "pct_doc_ser": "1234",
# "pct_doc_nom": "123456",
# "pct_doc_org_kod": "590-003",
# "pct_doc_org_name": "ГУ МВД РОССИИ ПО ПЕРМСКОМУ КРАЮ",
# "pct_email": "1@1.ru",
# "pct_inn": "123123123123",
# "taxpayer_status_zapros": "Отец",
# "pct_doc_ind": "1",
# "server_data": {
# "pct_birthday": "2003-09-24T00:00:00.000Z",
# "pct_doc_date": "",
# "pct_doc_ind": "",
# "pct_doc_nom": "",
# "pct_doc_org_kod": "",
# "pct_doc_org_name": "",
# "pct_doc_ser": "",
# "pct_doc_type": "",
# "pct_email": "",
# "pct_first_name": "Илья",
# "pct_inn": "",
# "pct_last_name": "Чистогов",
# "pct_second_name": "Дмитриевич",
# "result": "OK",
# "status_code": 200
# },
# "success": True,
# "user_id": "766945900"
# }
data = request . get_json ( )
print ( data )
user_id = data . get ( ' user_id ' )
taxpayer_status_zapros = data . get ( ' taxpayer_status ' )
patient_fio = data . get ( ' patient_fio ' )
sheet = authorize_google ( ) . open ( " Пациенты клиники " ) . sheet1
records = sheet . get_all_values ( )
# Получаем список всех людей с таким user_id
birthday_users = [ datetime . strptime ( row [ 2 ] , " % Y- % m- %d " ) . strftime ( " % Y- % m- %d T00:00:00.000Z " ) for row in records [ 1 : ] if row [ 0 ] == patient_fio ]
print ( birthday_users )
payload = {
" telegram_id " : int ( user_id ) ,
" first_name " : patient_fio . split ( ) [ 1 ] if len ( patient_fio . split ( ) ) > 1 else " " ,
" second_name " : patient_fio . split ( ) [ 2 ] if len ( patient_fio . split ( ) ) > 2 else " " ,
" last_name " : patient_fio . split ( ) [ 0 ] ,
" pac_poluchat " : " False " ,
" poluchat_status " : data . get ( ' taxpayer_status ' ) ,
" birthday " : birthday_users [ 0 ] if birthday_users else None
}
print ( payload )
headers = { " User-Agent " : " Mozilla/5.0 " , " Content-Type " : " application/json " }
url = " http://192.168.1.10:8081/AppZaprSvedPac "
response = requests . post ( url , json = payload , headers = headers )
if response . status_code == 200 :
print ( " Ответ: " , response . text )
result = response . json
print ( result )
try :
result = response . json ( )
except :
result = { }
js_formatted_birthdate = (
datetime . strptime ( result . get ( " pct_birthday " , " " ) , " % Y- % m- %d T % H: % M: % S. %f Z " ) . strftime ( " % Y- % m- %d " )
if result . get ( " pct_birthday " ) else " " )
js_formatted_birthdate_plc = (
datetime . strptime ( result . get ( " plc_birthday " , " " ) , " % Y- % m- %d T % H: % M: % S. %f Z " ) . strftime ( " % Y- % m- %d " )
if result . get ( " plc_birthday " ) else " " )
js_formatted_passport_date = (
datetime . strptime ( result . get ( " pct_doc_date " , " " ) , " % Y- % m- %d T % H: % M: % S. %f Z " ) . strftime ( " % Y- % m- %d " )
if result . get ( " pct_doc_date " ) else " " )
js_formatted_passport_date_plc = (
datetime . strptime ( result . get ( " plc_doc_date " , " " ) , " % Y- % m- %d T % H: % M: % S. %f Z " ) . strftime ( " % Y- % m- %d " )
if result . get ( " plc_doc_date " ) else " " )
return jsonify (
user_id = user_id ,
taxpayer_status_zapros = taxpayer_status_zapros ,
fio = patient_fio ,
server_data = result ,
js_formatted_birthdate = js_formatted_birthdate ,
js_formatted_passport_date = js_formatted_passport_date ,
pct_doc_ser = result . get ( ' pct_doc_ser ' , ' ' ) ,
pct_doc_nom = result . get ( ' pct_doc_nom ' , ' ' ) ,
pct_inn = result . get ( ' pct_inn ' , ' ' ) ,
pct_doc_type = result . get ( ' pct_doc_type ' , ' ' ) ,
pct_doc_ind = result . get ( ' pct_doc_ind ' , ' ' ) ,
pct_email = result . get ( ' pct_email ' , ' ' ) ,
pct_doc_org_kod = result . get ( ' pct_doc_org_kod ' , ' ' ) ,
pct_doc_org_name = result . get ( ' pct_doc_org_name ' , ' ' ) ,
plc_status = result . get ( ' plc_status ' , ' ' ) ,
plc_fio = result . get ( ' plc_fio ' , ' ' ) ,
js_formatted_birthdate_plc = js_formatted_birthdate_plc ,
plc_inn = result . get ( ' plc_inn ' , ' ' ) ,
plc_doc_type = result . get ( ' plc_doc_type ' , ' ' ) ,
plc_doc_ind = result . get ( ' plc_doc_ind ' , ' ' ) ,
plc_doc_ser = result . get ( ' plc_doc_ser ' , ' ' ) ,
plc_doc_nom = result . get ( ' plc_doc_nom ' , ' ' ) ,
js_formatted_passport_date_plc = js_formatted_passport_date_plc ,
plc_doc_org_name = result . get ( ' plc_doc_org_name ' , ' ' ) ,
plc_doc_org_kod = result . get ( ' plc_doc_org_kod ' , ' ' ) ,
success = True
)
else :
return f " Ошибка: { response . status_code } - { response . text } " , 500
except Exception as e :
return f " Произошла ошибка: { e } " , 500
@webApp . route ( ' /sending_patient2 ' , methods = [ ' POST ' ] )
def send_registration_request2 ( ) :
try :
raw_data = json . loads ( request . data )
print ( " Полученные данные: " , raw_data )
# Разделение ФИО
fio = raw_data . get ( " patient_fio " , " " )
parts = fio . split ( " " )
if len ( parts ) < 3 :
return jsonify ( { ' success ' : False , " error " : " ФИО должно содержать 3 слова " } ) , 400
pct_last_name = parts [ 0 ]
pct_first_name = parts [ 1 ]
pct_second_name = " " . join ( parts [ 2 : ] )
# Обработка даты рождения
dob = raw_data . get ( " dob1 " , " " )
pct_birthday = " "
if dob :
date_obj = datetime . strptime ( dob , " % Y- % m- %d " )
pct_birthday = date_obj . strftime ( " % Y- % m- %d T00:00:00.000Z " )
# Определение документа
if raw_data . get ( " passport1 " ) and raw_data . get ( " passport_date1 " ) and raw_data . get (
" postal_code1 " ) and raw_data . get ( " passport_issued_by1 " ) :
pct_doc_type = " Паспорт "
pct_doc_ind = 1
passport = raw_data . get ( " passport1 " , " " )
parts = passport . split ( " " )
pct_doc_ser = parts [ 0 ]
pct_doc_nom = parts [ 1 ]
formatted_date = raw_data . get ( " passport_date1 " , " " )
date_obj = datetime . strptime ( formatted_date , " % Y- % m- %d " )
pct_doc_date = date_obj . strftime ( " % Y- % m- %d T00:00:00.000Z " )
pct_doc_org_name = raw_data . get ( " passport_issued_by1 " , " " )
pct_doc_org_kod = raw_data . get ( " postal_code1 " , " " )
elif raw_data . get ( " svedetelstvo " ) and raw_data . get ( " svedetelstvo_date " ) and raw_data . get (
" svedetelstvo_issued_by " ) :
pct_doc_type = " Свидетельство о рождении "
pct_doc_ind = 2
pct_doc_ser , pct_doc_nom = raw_data . get ( " svedetelstvo " , " " ) . split ( " " )
formatted_date = raw_data . get ( " svedetelstvo_date " , " " )
date_obj = datetime . strptime ( formatted_date , " % Y- % m- %d " )
pct_doc_date = date_obj . strftime ( " % Y- % m- %d T00:00:00.000Z " )
pct_doc_org_name = raw_data . get ( " svedetelstvo_issued_by " , " " )
pct_doc_org_kod = " "
else :
return jsonify ( { ' success ' : False , " error " : " Недостаточно данных для определения документа " } ) , 400
# Данные родителей
plc_fio = raw_data . get ( " fional " , " " )
plc_status = raw_data . get ( " taxpayer_status_zapros " , " " )
dob_parent = raw_data . get ( " dobnal " , " " )
plc_birthday = " "
if dob_parent :
date_obj = datetime . strptime ( dob_parent , " % Y- % m- %d " )
plc_birthday = date_obj . strftime ( " % Y- % m- %d T00:00:00.000Z " )
plc_doc_ser , plc_doc_nom = raw_data . get ( " passportnal " , " " ) . split ( " " )
formatted_date = raw_data . get ( " passport_datenal " , " " )
date_obj = datetime . strptime ( formatted_date , " % Y- % m- %d " )
plc_doc_date = date_obj . strftime ( " % Y- % m- %d T00:00:00.000Z " )
plc_doc_org_name = raw_data . get ( " passport_issued_bynal " , " " )
plc_doc_org_kod = raw_data . get ( " postal_codenal " , " " )
plc_inn = raw_data . get ( " innnal " , " " )
user_id = raw_data . get ( ' user_id ' )
inn1 = raw_data . get ( " inn1 " , " " )
email1 = raw_data . get ( " email1 " , " " )
# Извлекаем годы
selected_years = raw_data . get ( ' selected_years ' , [ ] )
if selected_years :
# Преобразуем элементы в целые числа
selected_years = list ( map ( int , selected_years ) )
# Находим минимальный и максимальный год
year_beg_spr1 = min ( selected_years )
year_end_spr2 = max ( selected_years )
# Если выбран только один год, то обе переменные будут одинаковыми
if year_beg_spr1 == year_end_spr2 :
year_end_spr2 = year_beg_spr1
# Теперь у нас есть year_beg_spr и year_end_spr
print ( " Минимальный год: " , year_beg_spr1 )
print ( " Максимальный год: " , year_end_spr2 )
# Формируем данные
data2 = {
" telegram_id " : int ( user_id ) ,
" pct_last_name " : pct_last_name ,
" pct_first_name " : pct_first_name ,
" pct_second_name " : pct_second_name ,
" pct_birthday " : pct_birthday ,
" pct_inn " : inn1 ,
" pct_doc_type " : pct_doc_type ,
" pct_doc_ind " : pct_doc_ind ,
" pct_doc_ser " : pct_doc_ser ,
" pct_doc_nom " : pct_doc_nom ,
" pct_doc_date " : pct_doc_date ,
" pct_doc_org_name " : pct_doc_org_name ,
" pct_doc_org_kod " : pct_doc_org_kod ,
" pac_poluchat " : " False " ,
" pct_email " : email1 ,
" plc_status " : plc_status ,
" plc_fio " : plc_fio ,
" plc_birthday " : plc_birthday ,
" plc_inn " : plc_inn ,
" plc_doc_type " : " Паспорт " ,
" plc_doc_ind " : 1 ,
" plc_doc_ser " : plc_doc_ser ,
" plc_doc_nom " : plc_doc_nom ,
" plc_doc_date " : plc_doc_date ,
" plc_doc_org_name " : " ГУ МВД РОССИИ ПО ПЕРМСКОМУ КРАЮ " ,
" plc_doc_org_kod " : plc_doc_org_kod ,
" year_beg_spr " : year_beg_spr1 ,
" year_end_spr " : year_end_spr2
}
# print("Отправляемые данные:", data2)
# return jsonify({'success': True, 'data': data2})
# except Exception as e:
# return jsonify({'success': False, 'error': str(e)}), 500
print ( " Отправляемые данные: " , data2 )
# Успешный ответ
HEADER2 = { " User-Agent " : " Mozilla/5.0 " , " Content-Type " : " application/json " }
try :
response = requests . post ( " http://192.168.1.10:8081/AppSaveSvedPac " , headers = HEADER2 , json = data2 , timeout = 5 )
print ( " Ответ сервера: " , response . text ) # вдруг сервер всё же что-то вернёт
if response . status_code == 200 :
return jsonify ( { ' success ' : True } )
else :
return jsonify ( { ' success ' : False , ' error ' : f ' Сервер вернул статус { response . status_code } ' } ) , 500
except requests . exceptions . RequestException as e :
return jsonify ( { ' success ' : False , ' error ' : f ' Ошибка соединения: { str ( e ) } ' } ) , 500
except Exception as e :
print ( f " Ошибка: { e } " )
return jsonify ( { ' success ' : False , ' error ' : str ( e ) } ) , 500
@webApp . route ( ' / ' )
def main_page_2_0 ( ) :
return render_template ( ' 2.0/main_page.pug ' , user_id = request . args . get ( ' user_id ' , None ) )
@ -424,3 +742,30 @@ def main_page_2_0_fns():
return render_template ( ' 2.0/main_page_fns.pug ' , user_id = user_id , users = matching_users )
except Exception as e :
return f " Произошла ошибка: { e } " , 500
@webApp . route ( ' /fnstest ' )
def main_page_2_0_fns_test ( ) :
try :
user_id = request . args . get ( ' user_id ' )
if not user_id :
return " Ошибка: не передан user_id " , 400
sheet = authorize_google ( ) . open ( " Пациенты клиники " ) . sheet1
records = sheet . get_all_values ( )
# Получаем список всех людей с таким user_id
matching_users = [ row [ 0 ] for row in records [ 1 : ] if row [ 3 ] == user_id ]
matching_users = sum ( matching_users , [ ] ) if any ( isinstance ( i , list ) for i in matching_users ) else matching_users
print ( matching_users )
if not matching_users :
return " Ошибка: пользователь не найден " , 404
return render_template ( ' 2.0/main_page_fns2.pug ' , user_id = user_id , users = matching_users )
except Exception as e :
return f " Произошла ошибка: { e } " , 500