From afe4c229d7ac7a757aa745468e3f92cca3d9337c Mon Sep 17 00:00:00 2001 From: sergei kasianenko Date: Tue, 28 May 2024 08:02:42 +0800 Subject: [PATCH 1/4] send order --- api/directions/views.py | 7 ++++++- contracts/models.py | 4 ++++ ftp_orders/main.py | 18 ++++++++++++------ hospitals/models.py | 1 + laboratory/settings.py | 2 ++ 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/api/directions/views.py b/api/directions/views.py index 351b66baa8..be62a71cc3 100644 --- a/api/directions/views.py +++ b/api/directions/views.py @@ -3645,15 +3645,20 @@ def tubes_register_get(request): val = TubesRegistration.objects.get(number=pk) issledovanie_in_tube = Issledovaniya.objects.filter(tubes__id=val.pk).first() if issledovanie_in_tube: - all_issledovania = Issledovaniya.objects.filter(napravleniye_id=issledovanie_in_tube.napravleniye_id) + napravleniye_id = issledovanie_in_tube.napravleniye_id + all_issledovania = Issledovaniya.objects.filter(napravleniye_id=napravleniye_id) for issledovanie in all_issledovania: if len(issledovanie.tubes.all()) == 0: issledovanie.tubes.add(val.pk) issledovanie.save() + napravleniye = Napravleniya.objects.filter(pk=napravleniye_id).first() + if napravleniye.external_executor_hospital and napravleniye.external_executor_hospital.is_external_performing_organization: + napravleniye.need_order_redirection = True if not val.doc_get and not val.time_get: val.set_get(request.user.doctorprofile) get_details[pk] = val.get_details() + return status_response(True, data={'details': get_details}) diff --git a/contracts/models.py b/contracts/models.py index 6df4705e5b..0c2cb088a7 100644 --- a/contracts/models.py +++ b/contracts/models.py @@ -59,6 +59,10 @@ def get_hospital_price_by_date(hospital_id, date_start, date_end, is_subcontract def get_hospital_many_prices_by_date(hospital_id, date_start, date_end, is_subcontract=False): return PriceName.objects.filter(hospital_id=hospital_id, date_start__lte=date_start, date_end__gte=date_end, subcontract=is_subcontract) + @staticmethod + def get_hospital_extrenal_price_by_date(external_hospital_id, date_start, date_end, external_performer=True): + return PriceName.objects.filter(hospital_id=external_hospital_id, date_start__lte=date_start, date_end__gte=date_end, external_performer=external_performer) + class Meta: verbose_name = "Название прайса" verbose_name_plural = "Названия прайса" diff --git a/ftp_orders/main.py b/ftp_orders/main.py index a2c8b422de..2a5661354e 100644 --- a/ftp_orders/main.py +++ b/ftp_orders/main.py @@ -21,7 +21,7 @@ from ftp_orders.sql_func import get_tubesregistration_id_by_iss from hospitals.models import Hospitals from directory.models import Researches, Fractions -from laboratory.settings import BASE_DIR, NEED_RECIEVE_TUBE_TO_PUSH_ORDER, FTP_SETUP_TO_SEND_HL7_BY_RESEARCHES +from laboratory.settings import BASE_DIR, NEED_RECIEVE_TUBE_TO_PUSH_ORDER, FTP_SETUP_TO_SEND_HL7_BY_RESEARCHES, OWN_SETUP_TO_SEND_FTP_EXECUTOR from laboratory.utils import current_time from slog.models import Log from users.models import DoctorProfile @@ -461,10 +461,18 @@ def push_order(self, direction: Napravleniya): pv = hl7.add_group("ORM_O01_PATIENT_VISIT") pv.PV1.PV1_2.value = "O" - if direction.istochnik_f.title.lower() in ["договор"]: - pv.PV1.PV1_20.value = f"Договор^^{direction.price_name.title}^{direction.price_name.symbol_code}" + if OWN_SETUP_TO_SEND_FTP_EXECUTOR: + prices = PriceName.get_hospital_extrenal_price_by_date(direction.external_executor_hospital, direction.data_sozdaniya, direction.data_sozdaniya) + for price in prices: + if direction.istochnik_f.title.lower() == "омс" and "омс" in price.title.lower(): + pv.PV1.PV1_20.value = f"Договор^^{price.contract_number}^{price.symbol_code}" + if direction.istochnik_f.title.lower() == "договор" and "договор" in price.title.lower(): + pv.PV1.PV1_20.value = f"Договор^^{price.contract_number}^{price.symbol_code}" else: - pv.PV1.PV1_20.value = "Наличные" + if direction.istochnik_f.title.lower() == "договор": + pv.PV1.PV1_20.value = f"Договор^^{direction.price_name.title}^{direction.price_name.symbol_code}" + else: + pv.PV1.PV1_20.value = "Наличные" pv.PV1.PV1_44.value = direction.data_sozdaniya.strftime("%Y%m%d") pv.PV1.PV1_46.value = "" @@ -478,9 +486,7 @@ def push_order(self, direction: Napravleniya): direction.need_order_redirection = False direction.time_send_hl7 = current_time() direction.save(update_fields=["time_send_hl7", "need_order_redirection"]) - n = 0 - for iss in direction.issledovaniya_set.all(): n += 1 obr = ordd.add_segment("OBR") diff --git a/hospitals/models.py b/hospitals/models.py index 626dbd18d5..89ef9d743d 100644 --- a/hospitals/models.py +++ b/hospitals/models.py @@ -118,6 +118,7 @@ def search_hospital(query): if not query: return [] hospital_query = search_hospitals(hospital_title=query) + print(hospital_query) return [{"id": d.id, "title": d.title} for d in hospital_query] @staticmethod diff --git a/laboratory/settings.py b/laboratory/settings.py index 5028bcd576..6262915947 100644 --- a/laboratory/settings.py +++ b/laboratory/settings.py @@ -401,6 +401,7 @@ def __getitem__(self, item): CDA_TEMPLATE_XML_DIRECTORY = "" IDGTL_KEY = "" ROUTE_LIST_ROW_HEIGHTS = 25 +OWN_SETUP_TO_SEND_FTP_EXECUTOR = False FCM_CERT_PATH = "" @@ -476,6 +477,7 @@ def get_env_value(env_variable): CACHES['default']['BACKEND'] = 'django.core.cache.backends.redis.RedisCache' + # db = DATABASES.get('default', {}) # db['OPTIONS'] = db.get('OPTIONS', {}) # db['OPTIONS']['options'] = f'-c statement_timeout={QUERY_TIMEOUT * 1000}' From d18ef98649ca316723155409d15b92ee2ae03060 Mon Sep 17 00:00:00 2001 From: sergei kasianenko Date: Tue, 28 May 2024 08:04:29 +0800 Subject: [PATCH 2/4] fix --- hospitals/models.py | 1 - 1 file changed, 1 deletion(-) diff --git a/hospitals/models.py b/hospitals/models.py index 89ef9d743d..626dbd18d5 100644 --- a/hospitals/models.py +++ b/hospitals/models.py @@ -118,7 +118,6 @@ def search_hospital(query): if not query: return [] hospital_query = search_hospitals(hospital_title=query) - print(hospital_query) return [{"id": d.id, "title": d.title} for d in hospital_query] @staticmethod From 8a68f866ee12ded257953171a882c3e3dff49490 Mon Sep 17 00:00:00 2001 From: Sergei Kasianenko <41939763+urchinpro@users.noreply.github.com> Date: Tue, 28 May 2024 08:09:55 +0800 Subject: [PATCH 3/4] Update api/directions/views.py Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- api/directions/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/api/directions/views.py b/api/directions/views.py index be62a71cc3..35618f3f1f 100644 --- a/api/directions/views.py +++ b/api/directions/views.py @@ -3658,7 +3658,6 @@ def tubes_register_get(request): val.set_get(request.user.doctorprofile) get_details[pk] = val.get_details() - return status_response(True, data={'details': get_details}) From 92f91786d393939625195a33f6d7723b8a7f828e Mon Sep 17 00:00:00 2001 From: Sergei Kasianenko <41939763+urchinpro@users.noreply.github.com> Date: Tue, 28 May 2024 08:09:59 +0800 Subject: [PATCH 4/4] Update laboratory/settings.py Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- laboratory/settings.py | 1 - 1 file changed, 1 deletion(-) diff --git a/laboratory/settings.py b/laboratory/settings.py index 6262915947..b777910669 100644 --- a/laboratory/settings.py +++ b/laboratory/settings.py @@ -477,7 +477,6 @@ def get_env_value(env_variable): CACHES['default']['BACKEND'] = 'django.core.cache.backends.redis.RedisCache' - # db = DATABASES.get('default', {}) # db['OPTIONS'] = db.get('OPTIONS', {}) # db['OPTIONS']['options'] = f'-c statement_timeout={QUERY_TIMEOUT * 1000}'