Example #1
0
def title_fields(iss):
    title_fields = [
        "Куда направляется",
        "Цель",
        "Диагноз основной",
        "Дата приема",
        "Направлен(а) на",
        "Наименование (консультации, исследования, отделения)",
        "Данные анамнеза",
        "Результаты лабораторные",
        "Результаты диагностические",
        "Результаты консультационные",
        "Сведения о профилактических прививках",
        "Прочие цели",
        "Диагноз сопутствующий",
        "Врач",
        "Руководитель МО",
    ]

    result = fields_result_only_title_fields(iss, title_fields, False)
    data = {i['title']: i['value'] for i in result}

    for i in result:
        data[i["title"]] = i["value"]

    if not data.get("Куда направляется", None):
        data["Куда направляется"] = ""
    if not data.get("Цель", None):
        data["Цель"] = ""
    if not data.get("Диагноз основной", None):
        data["Диагноз основной"] = ""
    if not data.get("Дата приема", None):
        data["Дата приема"] = ""
    if not data.get("Направлен(а) на", None):
        data["Направлен(а) на"] = ""
    if not data.get("Наименование (консультации, исследования, отделения)", None):
        data["Наименование (консультации, исследования, отделения)"] = ""
    if not data.get("Данные анамнеза", None):
        data["Данные анамнеза"] = ""
    if not data.get("Сведения о профилактических прививках", None):
        data["Сведения о профилактических прививках"] = ""
    if not data.get("Прочие цели", None):
        data["Прочие цели"] = ""
    if not data.get("Диагноз сопутствующий", None):
        data["Диагноз сопутствующий"] = ""
    if not data.get("Руководитель МО", None):
        data["Руководитель МО"] = ""
    if not data.get("Врач", None):
        data["Врач"] = ""
    else:
        data["Врач"] = get_doctor_data(data["Врач"])
    return data
Example #2
0
def form_04(direction: Napravleniya,
            iss: Issledovaniya,
            fwb,
            doc,
            leftnone,
            user=None):
    # Заявление на возврат
    styleSheet = getSampleStyleSheet()
    style = styleSheet["Normal"]
    style.fontName = "PTAstraSerifReg"
    style.fontSize = 12
    style.alignment = TA_JUSTIFY

    style_ml = deepcopy(style)
    style_ml.spaceAfter = 2 * mm

    styleCenter = deepcopy(style)
    styleCenter.alignment = TA_CENTER

    styleBold = deepcopy(style)
    styleBold.fontName = "PTAstraSerifBold"

    styleCenterBold = deepcopy(style)
    styleCenterBold.alignment = TA_CENTER
    styleCenterBold.fontSize = 12
    styleCenterBold.leading = 15
    styleCenterBold.fontName = 'PTAstraSerifBold'

    styleT = deepcopy(style)
    styleT.alignment = TA_LEFT
    styleT.leading = 5 * mm

    pdfmetrics.registerFont(
        TTFont('PTAstraSerifBold',
               os.path.join(FONTS_FOLDER, 'PTAstraSerif-Bold.ttf')))
    pdfmetrics.registerFont(
        TTFont('PTAstraSerifReg',
               os.path.join(FONTS_FOLDER, 'PTAstraSerif-Regular.ttf')))

    fwb.append(Spacer(1, 3 * mm))
    title_field_result = {
        "ФИО пациента": "",
        "Телефон": "",
        "Рублей": "",
        "Копеек": "",
        "Кассовый чек №": "",
        "Дата чека": "",
        "За медицинские услуги": "",
        "Причина": "",
        "Дата возврата": "",
        "Руководитель медицинской организаци": "",
        "Зав. отделением": "",
    }
    data_fields_result = fields_result_only_title_fields(
        iss, title_field_result)
    for i in data_fields_result:
        if title_field_result.get(i["title"], None) is not None:
            title_field_result[i["title"]] = i["value"]
    hospital = iss.doc_confirmation.hospital
    hospital_short_title = hospital.safe_short_title
    hospital_title = hospital.safe_full_title
    hospital_address = hospital.safe_address
    hospital_phone = hospital.phones

    open_bold_tag = "<font face =\"PTAstraSerifBold\">"
    close_tag_bold = "</font>"

    opinion = [
        [
            Paragraph(
                f'{open_bold_tag}РОССИЙСКАЯ ФЕДЕРАЦИЯ<br/>Министерство здравоохранения<br/>Иркутской области<br/><br/>'
                f'{hospital_title}{close_tag_bold}<br/>{hospital_address}<br/>{hospital_phone}',
                styleCenter,
            ),
            Paragraph(
                f'Главному врачу <br/>{hospital_short_title} <br/>'
                f'{title_field_result.get("Руководитель медицинской организаци", "")}<br/><br/>от<br/>'
                f'{title_field_result.get("ФИО пациента", "")} <br/>'
                f'Тел.: {title_field_result.get("Телефон", "")}',
                styleT,
            ),
        ],
    ]

    tbl = Table(opinion, colWidths=[100 * mm, 80 * mm])
    tbl.setStyle(
        TableStyle([('GRID', (0, 0), (-1, -1), 0.75, colors.white),
                    ('LEFTPADDING', (1, 0), (-1, -1), 20 * mm),
                    ('VALIGN', (0, 0), (-1, -1), 'TOP')]))

    fwb.append(tbl)
    fwb.append(Spacer(1, 3 * mm))

    fwb.append(Spacer(1, 6 * mm))
    fwb.append(
        Paragraph(f'{open_bold_tag}Заявление на возврат{close_tag_bold}',
                  styleCenterBold))
    fwb.append(Spacer(1, 4 * mm))
    fwb.append(Spacer(1, 2 * mm))
    copeek = title_field_result.get("Копеек", "")
    if len(copeek) == 1 and copeek == "0":
        copeek = "00"
    fwb.append(
        Paragraph(
            f'Прошу вернуть денежные средства в размере <u>{title_field_result.get("Рублей", "")}</u> рублей <u>{copeek}</u> коп по кассовому чеку '
            f'№ <u>{title_field_result.get("Кассовый чек №", "")}</u> от <u>{title_field_result.get("Дата чека", "")}</u>',
            style_ml,
        ))
    fwb.append(
        Paragraph(
            f'за медицинские услуги: <u>{title_field_result.get("За медицинские услуги", "")}</u>',
            style_ml))
    fwb.append(
        Paragraph(
            f'по причине: <u>{title_field_result.get("Причина", "")}</u>',
            style_ml))

    fwb.append(Spacer(1, 4 * mm))
    result = stamp_signature(styleCenter)
    fwb.append(result)

    fwb.append(Spacer(1, 10 * mm))
    fwb.append(
        Paragraph(
            f'Денежные средства за неуказанную медицинскую услугу в размере  <u>{title_field_result.get("Рублей", "")}</u> руб.  <u>{copeek}</u> коп. получил',
            style_ml))
    fwb.append(Spacer(1, 4 * mm))
    result = stamp_signature(styleCenter)
    fwb.append(result)

    fwb.append(Spacer(1, 3 * mm))
    fwb.append(
        Paragraph(
            f'Дата <u>{title_field_result.get("Дата возврата", "")}</u> ',
            style_ml))
    fwb.append(Spacer(1, 10 * mm))
    fwb.append(
        Paragraph('Зав. отделением профилактических медицинских осмотров',
                  style_ml))
    fwb.append(Spacer(1, 2 * mm))
    result = stamp_signature(styleCenter,
                             title_field_result.get("Зав. отделением", ""))
    fwb.append(result)
    fwb = fields_result(iss, fwb, title_field_result)

    return fwb
Example #3
0
def form_03(direction: Napravleniya,
            iss: Issledovaniya,
            fwb,
            doc,
            leftnone,
            user=None):
    # Рапорт ВМП
    styleSheet = getSampleStyleSheet()
    style = styleSheet["Normal"]
    style.fontName = "PTAstraSerifReg"
    style.fontSize = 12
    style.alignment = TA_JUSTIFY

    style_ml = deepcopy(style)
    style_ml.spaceAfter = 2 * mm

    styleCenter = deepcopy(style)
    styleCenter.alignment = TA_CENTER

    styleBold = deepcopy(style)
    styleBold.fontName = "PTAstraSerifBold"

    styleCenterBold = deepcopy(style)
    styleCenterBold.alignment = TA_CENTER
    styleCenterBold.fontSize = 12
    styleCenterBold.leading = 15
    styleCenterBold.fontName = 'PTAstraSerifBold'

    styleT = deepcopy(style)
    styleT.alignment = TA_LEFT
    styleT.leading = 5 * mm

    pdfmetrics.registerFont(
        TTFont('PTAstraSerifBold',
               os.path.join(FONTS_FOLDER, 'PTAstraSerif-Bold.ttf')))
    pdfmetrics.registerFont(
        TTFont('PTAstraSerifReg',
               os.path.join(FONTS_FOLDER, 'PTAstraSerif-Regular.ttf')))

    fwb.append(Spacer(1, 3 * mm))
    title_field_result = ["Кому", "От кого", "Отделение", "Дата"]
    data_fields_result = fields_result_only_title_fields(
        iss, title_field_result)
    main_manager, from_who, departmnet, date_protocol = "", "", "", ""
    for i in data_fields_result:
        if i["title"] == "Кому":
            main_manager = i["value"]
        if i["title"] == "От кого":
            from_who = i["value"]
        if i["title"] == "Отделение":
            departmnet = i["value"]
        if i["title"] == "Дата":
            date_protocol = normalize_date(i["value"])

    opinion = [
        [
            Paragraph(' ', styleT),
            Paragraph(f'{main_manager}<br/>от<br/>{from_who}', styleT),
        ],
    ]

    tbl = Table(opinion, colWidths=[120 * mm, 60 * mm])
    tbl.setStyle(
        TableStyle([('GRID', (0, 0), (-1, -1), 0.75, colors.white),
                    ('LEFTPADDING', (1, 0), (-1, -1), 2 * mm),
                    ('VALIGN', (0, 0), (-1, -1), 'TOP')]))

    fwb.append(tbl)
    fwb.append(Spacer(1, 3 * mm))

    open_bold_tag = "<font face =\"PTAstraSerifBold\">"
    close_tag_bold = "</font>"

    fwb.append(Spacer(1, 4 * mm))
    fwb.append(Paragraph('Рапорт', styleCenterBold))
    fwb.append(Spacer(1, 4 * mm))
    fwb.append(
        Paragraph(
            f'Довожу до Вашего сведения, что в отделение {departmnet} поступил пациент, нуждающийся в оказании ВМП',
            style_ml))
    fwb.append(Spacer(1, 2 * mm))
    fwb.append(
        Paragraph(
            f'{open_bold_tag}ФИО пациента:{close_tag_bold} {direction.client.individual.fio()}',
            style_ml))
    sex = direction.client.individual.sex
    space_symbol = '&nbsp;'
    fwb.append(
        Paragraph(
            f'{open_bold_tag}Дата рождения:{close_tag_bold} {direction.client.individual.bd()} {open_bold_tag} - Пол:{close_tag_bold} {sex}, {space_symbol * 5}',
            style_ml))
    polis_num = ''
    polis_issue = ''
    snils = ''
    ind_data = direction.client.get_data_individual()
    if ind_data['oms']['polis_num']:
        polis_num = ind_data['oms']['polis_num']
    if ind_data['oms']['polis_issued']:
        polis_issue = ind_data['oms']['polis_issued']
    if ind_data['snils']:
        snils = ind_data['snils']
    fwb.append(
        Paragraph(f'{open_bold_tag}Полис ОМС:{close_tag_bold} {polis_num}',
                  style_ml))
    fwb.append(
        Paragraph(
            f'{open_bold_tag}Название страховой медицинской организации:{close_tag_bold} {polis_issue}',
            style_ml))
    fwb.append(
        Paragraph(f'{open_bold_tag}СНИЛС:{close_tag_bold} {snils}', style_ml))
    address = ind_data['main_address']
    fwb.append(
        Paragraph(
            f'{open_bold_tag}Адрес регистрации:{close_tag_bold} {address}',
            style_ml))

    fwb = fields_result(iss, fwb, title_field_result)

    fwb.append(Spacer(1, 7 * mm))
    opinion = [
        [
            Paragraph('Лечащий врач', styleT),
            Paragraph('___________________', styleT),
            Paragraph(f'{iss.doc_confirmation.get_full_fio()}', styleT),
        ],
        [
            Paragraph(f'{date_protocol} ', styleT),
            Paragraph('', styleT),
            Paragraph('', styleT),
        ],
    ]

    tbl = Table(opinion,
                hAlign='LEFT',
                colWidths=[57 * mm, 45 * mm, 57 * mm],
                rowHeights=[10 * mm, 10 * mm])
    tbl.setStyle(
        TableStyle([
            ('GRID', (0, 0), (-1, -1), 0.75, colors.white),
            ('LEFTPADDING', (0, 0), (-1, -1), 2 * mm),
            ('VALIGN', (0, 0), (-1, -1), 'BOTTOM'),
        ]))
    fwb.append(tbl)

    return fwb
Example #4
0
def form_01(direction, iss: Issledovaniya, fwb, doc, leftnone, user=None):
    # Заключение на ВМП
    pdfmetrics.registerFont(
        TTFont('PTAstraSerifBold',
               os.path.join(FONTS_FOLDER, 'PTAstraSerif-Bold.ttf')))
    pdfmetrics.registerFont(
        TTFont('PTAstraSerifReg',
               os.path.join(FONTS_FOLDER, 'PTAstraSerif-Regular.ttf')))

    styleSheet = getSampleStyleSheet()
    style = styleSheet["Normal"]
    style.fontName = "PTAstraSerifReg"
    style.fontSize = 12
    style.alignment = TA_JUSTIFY

    style_ml = deepcopy(style)
    style_ml.spaceAfter = 2 * mm

    styleBold = deepcopy(style)
    styleBold.fontName = "PTAstraSerifBold"

    styleCenterBold = deepcopy(style)
    styleCenterBold.alignment = TA_CENTER
    styleCenterBold.fontSize = 12
    styleCenterBold.leading = 15
    styleCenterBold.fontName = 'PTAstraSerifBold'

    title_field_result = ["Дата"]
    data_fields_result = fields_result_only_title_fields(
        iss, title_field_result)
    date_protocol = ""
    for i in data_fields_result:
        if i["title"] == "Дата":
            date_protocol = i["value"]

    history_num = ''
    if direction.parent and direction.parent.research.is_hospital:
        history_num = f"(cтационар-{str(direction.parent.napravleniye_id)})"

    fwb.append(Spacer(1, 3 * mm))
    fwb.append(
        Paragraph(f'ЗАКЛЮЧЕНИЕ № {direction.pk} {history_num} ',
                  styleCenterBold))
    fwb.append(
        Paragraph('медицинского специалиста соответствующего профиля',
                  styleCenterBold))
    doc_profile = iss.doc_confirmation.specialities.title
    doc_fio = iss.doc_confirmation.get_full_fio()
    fwb.append(Paragraph(f'{doc_profile} {doc_fio}', styleCenterBold))

    open_bold_tag = "<font face =\"PTAstraSerifBold\">"
    close_tag_bold = "</font>"
    fwb.append(Spacer(1, 4 * mm))
    fwb.append(
        Paragraph(f'{open_bold_tag}Дата:{close_tag_bold} {date_protocol}',
                  style_ml))
    fwb.append(
        Paragraph(
            f'{open_bold_tag}ФИО пациента:{close_tag_bold} {direction.client.individual.fio()}',
            style_ml))
    sex = direction.client.individual.sex
    space_symbol = '&nbsp;'
    fwb.append(
        Paragraph(
            f'{open_bold_tag}Дата рождения:{close_tag_bold} {direction.client.individual.bd()}, {space_symbol * 5} {open_bold_tag}Пол:{close_tag_bold} {sex}',
            style_ml))
    polis_num = ''
    polis_issue = ''
    snils = ''
    ind_data = direction.client.get_data_individual()
    if ind_data['oms']['polis_num']:
        polis_num = ind_data['oms']['polis_num']
    if ind_data['oms']['polis_issued']:
        polis_issue = ind_data['oms']['polis_issued']
    if ind_data['snils']:
        snils = ind_data['snils']
    fwb.append(
        Paragraph(
            f'{open_bold_tag}Полис ОМС:{close_tag_bold}{polis_num}-{polis_issue} {space_symbol * 4} {open_bold_tag}6. СНИЛС:{close_tag_bold} {snils}',
            style_ml))
    address = ind_data['main_address']
    fwb.append(
        Paragraph(
            f'{open_bold_tag}Место регистрации:{close_tag_bold} {address}',
            style_ml))

    fwb = fields_result(iss, fwb, title_field_result)

    fwb.append(Spacer(1, 15 * mm))
    fwb.append(
        Paragraph(f"Медицинский специалист ___________________ {doc_fio}",
                  style))

    return fwb
Example #5
0
def form_02(direction: Napravleniya,
            iss: Issledovaniya,
            fwb,
            doc,
            leftnone,
            user=None):
    # Направление на ВМП
    styleSheet = getSampleStyleSheet()
    style = styleSheet["Normal"]
    style.fontName = "PTAstraSerifReg"
    style.fontSize = 12
    style.alignment = TA_JUSTIFY

    style_ml = deepcopy(style)
    style_ml.spaceAfter = 2 * mm

    styleCenter = deepcopy(style)
    styleCenter.alignment = TA_CENTER

    styleBold = deepcopy(style)
    styleBold.fontName = "PTAstraSerifBold"

    styleCenterBold = deepcopy(style)
    styleCenterBold.alignment = TA_CENTER
    styleCenterBold.fontSize = 12
    styleCenterBold.leading = 15
    styleCenterBold.fontName = 'PTAstraSerifBold'

    hospital_name = direction.hospital.title
    phones = direction.hospital.phones
    hospital_address = direction.hospital.address

    pdfmetrics.registerFont(
        TTFont('PTAstraSerifBold',
               os.path.join(FONTS_FOLDER, 'PTAstraSerif-Bold.ttf')))
    pdfmetrics.registerFont(
        TTFont('PTAstraSerifReg',
               os.path.join(FONTS_FOLDER, 'PTAstraSerif-Regular.ttf')))

    fwb.append(Spacer(1, 5 * mm))
    open_bold_tag = "<font face =\"PTAstraSerifBold\">"
    close_tag_bold = "</font>"

    fwb.append(Spacer(1, 4 * mm))
    fwb.append(Paragraph(f'{hospital_name.upper()}', styleCenterBold))
    fwb.append(Paragraph(f'{hospital_address} тел: {phones}', styleCenter))
    fwb.append(
        Paragraph(f'{direction.doc.podrazdeleniye.title.upper()}',
                  styleCenter))
    fwb.append(
        HRFlowable(width=190 * mm,
                   spaceAfter=3 * mm,
                   spaceBefore=3 * mm,
                   color=colors.black,
                   thickness=1.5))

    fwb.append(Spacer(1, 2 * mm))

    title_field_result = ["Руководитель медицинской организации", "Дата"]
    data_fields_result = fields_result_only_title_fields(
        iss, title_field_result)
    main_manager, date_protocol = "", ""
    for i in data_fields_result:
        if i["title"] == "Руководитель медицинской организации":
            main_manager = i["value"]
        if i["title"] == "Дата":
            date_protocol = normalize_date(i["value"])

    fwb.append(
        Paragraph(
            f'Исх.№ <u>{direction.pk}</u> от <u>{date_protocol or str(iss.medical_examination)}</u>',
            style))
    fwb.append(Spacer(1, 2 * mm))
    fwb.append(Paragraph('НАПРАВЛЕНИЕ', styleCenterBold))
    fwb.append(
        Paragraph(
            'на госпитализацию для оказания высокотехнологичной медицинской помощи',
            styleCenterBold))
    fwb.append(Spacer(1, 4 * mm))
    fwb.append(
        Paragraph(
            f'{open_bold_tag}ФИО пациента:{close_tag_bold} {direction.client.individual.fio()}',
            style_ml))
    sex = direction.client.individual.sex
    space_symbol = '&nbsp;'
    fwb.append(
        Paragraph(
            f'{open_bold_tag}Дата рождения:{close_tag_bold} {direction.client.individual.bd()} {open_bold_tag} - Пол:{close_tag_bold} {sex}, {space_symbol * 5}',
            style_ml))
    polis_num = ''
    polis_issue = ''
    snils = ''
    ind_data = direction.client.get_data_individual()
    if ind_data['oms']['polis_num']:
        polis_num = ind_data['oms']['polis_num']
    if ind_data['oms']['polis_issued']:
        polis_issue = ind_data['oms']['polis_issued']
    if ind_data['snils']:
        snils = ind_data['snils']
    fwb.append(
        Paragraph(f'{open_bold_tag}Полис ОМС:{close_tag_bold} {polis_num}',
                  style_ml))
    fwb.append(
        Paragraph(
            f'{open_bold_tag}Название страховой медицинской организации:{close_tag_bold} {polis_issue}',
            style_ml))
    fwb.append(
        Paragraph(f'{open_bold_tag}СНИЛС:{close_tag_bold} {snils}', style_ml))
    address = ind_data['main_address']
    fwb.append(
        Paragraph(
            f'{open_bold_tag}Адрес регистрации:{close_tag_bold} {address}',
            style_ml))

    fwb = fields_result(iss, fwb, title_field_result)
    fwb.append(Spacer(1, 10 * mm))

    styleT = deepcopy(style)
    styleT.alignment = TA_LEFT
    styleT.leading = 5 * mm

    opinion = [
        [
            Paragraph('Руководитель медицинской организации', styleT),
            Paragraph('___________________', styleT),
            Paragraph(f'{main_manager}', styleT),
        ],
        [
            Paragraph('Лечащий врач', styleT),
            Paragraph('___________________', styleT),
            Paragraph(f'{iss.doc_confirmation.get_full_fio()}', styleT),
        ],
    ]

    tbl = Table(opinion,
                hAlign='LEFT',
                colWidths=[57 * mm, 45 * mm, 57 * mm],
                rowHeights=[13 * mm, 13 * mm])
    tbl.setStyle(
        TableStyle([
            ('GRID', (0, 0), (-1, -1), 0.75, colors.white),
            ('LEFTPADDING', (0, 0), (-1, -1), 0 * mm),
            ('VALIGN', (0, 0), (-1, -1), 'BOTTOM'),
        ]))

    fwb.append(tbl)
    fwb.append(Spacer(1, 10 * mm))
    fwb.append(
        Paragraph("Печать направляющей медицинской организации", style_ml))

    return fwb
Example #6
0
def form_02(direction, iss: Issledovaniya, fwb, doc, leftnone, user=None):
    # ПАТОЛОГО-АНАТОМИЧЕСКОЕ заключение
    styleSheet = getSampleStyleSheet()
    style = styleSheet["Normal"]
    style.fontName = "FreeSans"
    style.fontSize = 10
    style.alignment = TA_JUSTIFY

    style_ml = deepcopy(style)
    style_ml.leftIndent = 5 * mm
    style_ml.spaceAfter = 0.5 * mm

    styleBold = deepcopy(style)
    styleBold.fontName = "FreeSansBold"

    hospital_name = SettingManager.get("org_title")
    hospital_address = SettingManager.get("org_address")
    hospital_kod_ogrn = SettingManager.get("org_ogrn")

    styleT = deepcopy(style)
    styleT.alignment = TA_LEFT
    styleT.fontSize = 10
    styleT.leading = 4.5 * mm

    opinion = [
        [
            Paragraph(f'<font size=10>{hospital_name}<br/>Адрес: {hospital_address}<br/>ОГРН: {hospital_kod_ogrn} <br/> </font>', styleT),
            Paragraph('<font size=9 >Медицинская документация <br/> Учетная форма № 014/1-у<br/>Утверждена приказом Минздрава России<br/>от 24 марта 2016г. № 179н</font>', styleT),
        ],
    ]

    tbl = Table(opinion, 2 * [100 * mm])
    tbl.setStyle(
        TableStyle(
            [
                ('GRID', (0, 0), (-1, -1), 0.75, colors.white),
                ('LEFTPADDING', (1, 0), (-1, -1), 35 * mm),
                ('LEFTPADDING', (0, 0), (0, -1), 15 * mm),
                ('VALIGN', (0, 0), (-1, -1), 'TOP'),
            ]
        )
    )

    fwb.append(tbl)
    fwb.append(Spacer(1, 5 * mm))

    history_num = ''
    if direction.parent and direction.parent.research.is_hospital:
        history_num = f"(cтационар-{str(direction.parent.napravleniye_id)})"

    styleCenterBold = deepcopy(style)
    styleCenterBold.alignment = TA_CENTER
    styleCenterBold.fontSize = 11.5
    styleCenterBold.leading = 15
    styleCenterBold.fontName = 'FreeSansBold'

    fwb.append(Paragraph(f'ПРОТОКОЛ № {direction.pk} {history_num} ', styleCenterBold))
    fwb.append(Paragraph('ПРИЖИЗНЕННОГО ПАТОЛОГО-АНАТОМИЧЕСКОГО<br/> ИССЛЕДОВАНИЯ БИОПСИЙНОГО (ОПЕРАЦИОННОГО) МАТЕРИАЛА', styleCenterBold))
    short_title = iss.research.short_title
    fwb.append(Paragraph(f'{short_title.upper()}', styleCenterBold))

    open_bold_tag = "<font face =\"FreeSansBold\">"
    close_tag_bold = "</font>"

    title_fields = [
        "Отделение направившее",
        "ФИО пациента",
        "Пол",
        "Дата рождения",
        "Полис ОМС",
        "СНИЛС",
        "Место регистрации",
        "Местность",
        "Диагноз по направлению",
        "Код по МКБ из направления",
        "Дата забора",
        "Время забора",
        "Материал в 10% растворе",
        "Загрязнен",
        "Дата поступления",
        "Время поступления",
        "Сохранность упаковки",
        "Дата регистрации",
        "Время регистрации",
        "Регистрационный номер",
        "Медицинские услуги",
        "Категория сложности",
        "Дата вырезки",
        "Время вырезки",
        "В проводку взято",
        "Окраски",
        "Макроскопическое описание",
        "Микроскопическое описание",
        "Заключение",
        "Код по МКБ",
        "Комментарии к заключению и рекомендации",
        "Врач-консультант",
    ]
    result = fields_result_only_title_fields(iss, title_fields, False)
    data = {}
    for i in result:
        data[i["title"]] = i["value"]

    if not data.get("Отделение направившее"):
        data["Отделение направившее"] = "не указано"

    if not data.get("Макроскопическое описание"):
        data["Макроскопическое описание"] = ""

    if not data.get("Микроскопическое описание"):
        data["Микроскопическое описание"] = ""

    if not data.get("Заключение"):
        data["Заключение"] = ""

    if not data.get("Комментарии к заключению и рекомендации"):
        data["Комментарии к заключению и рекомендации"] = ""

    if not data.get("Врач-консультант"):
        data["Врач-консультант"] = ""

    fwb.append(Spacer(1, 4 * mm))
    fwb.append(Paragraph(f'{open_bold_tag}1. Отделение, направившее биопсийный (операционный) материал:{close_tag_bold}{data["Отделение направившее"]}', style_ml))
    fwb.append(Paragraph(f'{open_bold_tag}2. Фамилия, имя, отчество (при наличии) пациента:{close_tag_bold} {data["ФИО пациента"]}', style_ml))
    if data["Пол"] == "м":
        sex = f'{data["Пол"]}-1'
    else:
        sex = f'{data["Пол"]}-2'
    space_symbol = '&nbsp;'
    fwb.append(Paragraph(f'{open_bold_tag}3. Пол:{close_tag_bold} {sex}, {space_symbol * 5} {open_bold_tag}4. Дата рождения:{close_tag_bold} {data["Дата рождения"]}', style_ml))
    if not data.get("Полис ОМС"):
        data["Полис ОМС"] = ""
    if not data.get("СНИЛС"):
        data["СНИЛС"] = ""
    fwb.append(Paragraph(f'{open_bold_tag}5. Полис ОМС:{close_tag_bold}{data["Полис ОМС"]} {space_symbol * 4} {open_bold_tag}6. СНИЛС:{close_tag_bold} {data["СНИЛС"]}', style_ml))
    data_address = json.loads(data["Место регистрации"])
    fwb.append(Paragraph(f'{open_bold_tag}7. Место регистрации:{close_tag_bold} {data_address["address"]}', style_ml))
    place = json.loads(data["Местность"])
    if place["code"] == "1":
        place_fact = "городская — 1"
    else:
        place_fact = "сельская — 2"
    fwb.append(Paragraph(f'{open_bold_tag}8. Местность:{close_tag_bold} {place_fact}', style_ml))
    fwb.append(Paragraph(f'{open_bold_tag}9. Диагноз заболевания (состояния) по данным направления:{close_tag_bold} {data["Диагноз по направлению"]}', style_ml))
    direction_mkb = json.loads(data["Код по МКБ из направления"])
    fwb.append(Paragraph(f'{open_bold_tag}10. Код по МКБ:{close_tag_bold} {direction_mkb["code"]}', style_ml))
    fwb.append(
        Paragraph(
            f'{open_bold_tag}11. Дата забора материала по данным направления:{close_tag_bold} {space_symbol * 2}{normalize_date(data["Дата забора"])} {space_symbol * 4} '
            f'{open_bold_tag}время{close_tag_bold} {data["Время забора"]}',
            style_ml,
        )
    )
    fwb.append(
        Paragraph(
            f'{open_bold_tag}12. Материал доставлен в 10%-ный раствор нейтрального формалина:{close_tag_bold} {space_symbol * 2}{data["Материал в 10% растворе"]} {space_symbol * 4} '
            f'{open_bold_tag}загрязнен {close_tag_bold} {data["Загрязнен"]}',
            style_ml,
        )
    )
    fwb.append(
        Paragraph(
            f'{open_bold_tag}13. Дата поступления биопсийного (операционного) материала:{close_tag_bold} {space_symbol * 2}{normalize_date(data["Дата поступления"])} {space_symbol * 4}'
            f'{open_bold_tag}время{close_tag_bold} {data["Время поступления"]}',
            style_ml,
        )
    )
    fwb.append(Paragraph(f'{open_bold_tag}14. Отметка о сохранности упаковки:{close_tag_bold} {space_symbol * 2}{data["Сохранность упаковки"]}', style_ml))
    fwb.append(
        Paragraph(
            f'{open_bold_tag}15. Дата регистрации биопсийного (операционного) материала:{close_tag_bold} {space_symbol * 2}{normalize_date(data["Дата регистрации"])} {space_symbol * 4}'
            f'{open_bold_tag}время{close_tag_bold} {data["Время регистрации"]}',
            style_ml,
        )
    )
    fwb.append(Paragraph(f'{open_bold_tag}16. Регистрационный номер:{close_tag_bold} {space_symbol * 2}{data["Регистрационный номер"]}', style_ml))
    med_service = json.loads(data["Медицинские услуги"])
    fwb.append(Paragraph(f'{open_bold_tag}17. Медицинские услуги:{close_tag_bold} {space_symbol * 2}{med_service["code"]} {med_service["title"]}', style_ml))
    category = json.loads(data["Категория сложности"])
    fwb.append(Paragraph(f'{open_bold_tag}18. Категория сложности:{close_tag_bold} {space_symbol * 2}{category["title"]}', style_ml))
    fwb.append(
        Paragraph(
            f'{open_bold_tag}19. Вырезка проводилась:{close_tag_bold} {space_symbol * 2}{normalize_date(data["Дата вырезки"])} {space_symbol * 4} {open_bold_tag}время{close_tag_bold} '
            f'{data["Время вырезки"]} {open_bold_tag}20. В проводку взято:{close_tag_bold} {space_symbol * 2} {data["В проводку взято"]} объектов',
            style_ml,
        )
    )

    table_results = table_part_result(data["Окраски"])
    fwb.append(Paragraph(f'{open_bold_tag}21. Назначенные окраски (реакции, определения):{close_tag_bold}', style_ml))
    fwb.append(Indenter(left=5 * mm))
    fwb.append(table_results)
    fwb.append(Indenter(left=-5 * mm))
    fwb.append(Paragraph(f'{open_bold_tag}22. Макроскопическое описание:{close_tag_bold}', style_ml))
    fwb.append(Paragraph(f'{data["Макроскопическое описание"]}', style_ml))
    fwb.append(Paragraph(f'{open_bold_tag}23. Микроскопическое описание:{close_tag_bold}', style_ml))
    fwb.append(Paragraph(f'{data["Микроскопическое описание"]}', style_ml))
    result_mkb = json.loads(data["Код по МКБ"])
    fwb.append(Paragraph(f'{open_bold_tag}24. Заключение:{close_tag_bold} {space_symbol * 110} {open_bold_tag}25. Код по МКБ:{close_tag_bold} {result_mkb["code"]}', style_ml))
    fwb.append(Paragraph(f'{data["Заключение"]}', style_ml))
    fwb.append(Paragraph(f'{open_bold_tag}26. Комментарии к заключению и рекомендации:{close_tag_bold}', style_ml))
    fwb.append(Paragraph(f'{data["Комментарии к заключению и рекомендации"]}', style_ml))
    fwb.append(Paragraph(f'{open_bold_tag}27. Прижизненное патолого-анатомическое исследование выполнили:{close_tag_bold}', style_ml))
    fwb.append(Spacer(1, 3 * mm))
    tbl = gen_table("Врач-патологоанатом", iss.doc_confirmation_fio, styleT, iss.doc_confirmation)
    fwb.append(tbl)
    fwb.append(Spacer(1, 7 * mm))
    tbl = gen_table("Врач-специалист, <br/>осуществляющий консультирование", data["Врач-консультант"], styleT)
    fwb.append(tbl)
    fwb.append(Spacer(1, 3 * mm))
    date_str = pytils.dt.ru_strftime(u"%d %B %Y", inflected=True, date=iss.medical_examination)
    fwb.append(Paragraph(f'{open_bold_tag}28. Дата проведения прижизненного патолого-анатомического исследования:{close_tag_bold} {date_str} г.', style_ml))

    return fwb