Mochinov

Untitled

Feb 1st, 2022 (edited)
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.29 KB | None | 0 0
  1.  
  2. 1)Заболеваемость ССЗ (в части ОКС и ОНМК)
  3.  
  4.  
  5. Тут я передаю МО , год и список диагнозов ,  'OKC' : ['I20.0', 'I21', 'I22'], или  'OHMK' : ['G45', 'G46'],
  6.     def get_encounter_morbidity(self, mo: dict, year: tuple, code_diagnos: list) -> int:
  7.         encounter = Encounter.objects.filter(
  8.             service_provider = mo['service_id'],
  9.             death_reason_code__isnull = True,
  10.             period_end__year = year
  11.         )
  12.         # Формирование списка и фильтрация по коду диагноза, вычисление общей заболеваимости и впервые выявленоe заболевание
  13.         return len(
  14.             [_ for _ in encounter if _.check_mkb10_diagnos(code_diagnos)]
  15.         ) / 1000,
  16.         len(
  17.             [_ for _ in encounter if _.check_mkb10_diagnos(code_diagnos)]
  18.         )
  19.  
  20.  
  21. 2) Смертность от ССЗ (в части ОКС и ОНМК)
  22.    
  23. тут я смотрю на то что поле death_reason_code не пустое и там есть значение чтобы точно знать что пациент умер и передаю туда коды заболеваний чтобы убедиться от того что смертность по  ОКС и ОНМК
  24.  
  25.     def get_encounter_mortality(self, mo: dict, year: int, code_diagnos: list) -> int:
  26.         encounter = Encounter.objects.filter(
  27.             service_provider = mo['service_id'],
  28.             death_reason_code__isnull = False,
  29.             period_end__year = year
  30.         )
  31.         # Формирование списка и фильтрация по коду диагноза, получении длины
  32.         return len(
  33.             [_ for _ in encounter if _.check_mkb10_diagnos(code_diagnos)]
  34.         )
  35.  
  36. 3) Летальность от инфаркта миокарда, в том числе с подъемом СТ и без подъема СТ;
  37.  
  38. —— нет данных не знаю как правильно получить помоги пожалуйста( что откуда берётся )
  39.  
  40.  
  41. 5) Количество больных с ССЗ, получивших медицинскую помощь в кардиологических и отдельно терапевтических отделениях, по региону в целом, в разрезе медицинских организаций;
  42.  
  43.    Получаю Encounter  и просто считаю больных с ССЗ
  44.  
  45.     def get_encounter_number_patients(self, mo: dict, year: int, code_diagnos: list) -> int:
  46.         encounter = Encounter.objects.filter(
  47.             service_provider = mo['service_id'],
  48.             death_reason_code__isnull = True,
  49.             period_end__year = year
  50.         )
  51.         # Формирование списка и фильтрация по коду диагноза, получении длины
  52.         return len(
  53.             [_ for _ in encounter if _.check_mkb10_diagnos(code_diagnos)]
  54.         )
  55.  
  56.  
  57. 6) Доля взятых на диспансерное наблюдение (для ОКС), доля фактически проходящих диспансерное наблюдение пациентов перенесших ОКС;
  58.  
  59. Получаю Encounter с типом klass = 'daytime', (Диспансерное наблюдение) и по кодам заболевания ОКС
  60. Помоги пожалуйста понять что такое кол-во пациентов, которые стали на диспансерное наблюдение и кол-во пациентов, которые проходят диспансерное наблюдение
  61.  
  62.  
  63.     def get_encounter_dispensary_observation(self, mo: str, year: int, code_diagnos: list) -> int:
  64.         encounter = Encounter.objects.filter(
  65.             service_provider = mo['service_id'],
  66.             death_reason_code__isnull = True,
  67.             period_end__year = year,
  68.             klass = 'daytime',
  69.         )
  70.         # Формирование списка и фильтрация по коду диагноза, получении длины
  71.         return len(
  72.             [_ for _ in encounter if _.check_mkb10_diagnos(code_diagnos)]
  73.         )
Add Comment
Please, Sign In to add comment