Описание таблицы

Конечному пользователю рекомендуется использовать таблицу sr.VReleasedServiceTable, которая включает в себя весь набор полей из sr.ReleasedService

В эту таблицу попадают данные об отпусках и оплате услуг, лечебных действий, лечебных программах (у которых есть отпуски) и медикаментах (отпущенных не из процедуры).
В нее также выводятся удаленные отпуски услуг (AppointmentDeletedDate is not null) и отпуски из услуг с любыми статусами, в том числе и отмененные (PrescriptionStatus = 'X').

Информация об оплате отпуска выводится корректная на текущий момент: при создании счета на услугу у соответствующего отпуска появляется информация о созданном счете, при оплате - появляется информация об оплате, при отмене счета информация о счете для отпусков отображаться перестанет.
Также информация об оплате корректно отображается для отпусков лечебных процедур: если сама услуга процедуры на несколько отпусков оплачена частично (например, есть оплаченный счет на 5 отпусков из 10 отпущенных в рамках процедуры), то информация об оплате будет выведена только соответствующим отпускам, а не всем из услуги (информация об оплате будет выведена первым 5 отпускам из 10, по дате завершения отпуска - DateTimeComplete).

Информация о налоге для услуги берется из счета. Мы считаем корректным, что налог будет начисляться только при наличии счета, то есть, по сути, конечной информации о стоимости и оплате услуги.

Чтобы получить строки с услугами, которые были оплачены именно из счета, нужно использовать условие "PaidDate is not null" или "BillStatus = "P"", так как в поле IsPaid учитываются как оплаченные услуги со способом оплаты по мед. показаниям или из программы (подробнее в описании поля в таблице ниже).

В таблицу выводится также дополнительная информация о:

  • наличии и месте диспетчеризации
  • пациенте (номер ИБ, ФИО, дата рождения)
  • медицинском обследовании (информация из шаблона консультаций и инструментальных исследований)

Описание полей таблицы

Название поляТипЗначение, которое
может принимать
Описание поляДругие заметки
PropertyCodenvarchar(50)NOT NULLid объекта, к которому относится сущность
AppointmentId

nvarchar(70)

NOT NULL
0, если если без значения
id отпуска услугиPK*
TreatmentActionIdnvarchar(70)

NOT NULL
0, если если без значения

id отпущенного лечебного действияPK
MedicalRecordIdnvarchar(70)NULL
(пока что null - где только ЛП)
id ИБ пациента
ScheduleItemIdnvarchar(70)NULLid диспетчеризации
IsAppointmentintNOT NULLфлаг, определяет запись обычной услугизначения: 1 и 0
IsTreatmentActionintNOT NULLфлаг, определяет запись ЛДзначения: 1 и 0
IsMedicalRecordTreatmentProgramintNOT NULLфлаг, определяет запись ЛПзначения: 1 и 0
IsMedicationintNOT NULLфлаг, определяет запись медикаментазначения: 1 и 0
RecordNonvarchar(50)NULLномер ИБ пациента
PatientFullNamenvarchar(302)NULL
(пока что пустое значение где только ЛП)
полное имя пациента
BirthDatedateNULLдата рождения пациента
ServiceItemIdnvarchar(70)NULL
null где только ЛП и отпуск медикамента
id услуги из назначения
ServiceItemMasterCodenvarchar(50)NULLMaster код услуги
AppointmentCreatedDatedatetimeNULL
null где только ЛП
дата создания отпуск (дата начала, может быть завершен позже)
DateTimeCompletedatetimeNULLдата и время отпуска (дата завершения отпуска)Для всех отпусков дата считается из Appointment с учетом значения из KeyValueStorage для ЛИ (за дату отпуска принимается дата создания отпуска (дата забора материала) или дата полного отпуска услуги)
DateCompletedateNULLдата отпуска (дата завершения отпуска)Для всех отпусков дата считается из Appointment с учетом значения из KeyValueStorage для ЛИ (за дату отпуска принимается дата создания отпуска (дата забора материала) или дата полного отпуска услуги)
TreatmentActionCreatedDatedatetimeNULLдата создания лечебного действия
PaymentMethodchar(2)NULL
null где только ЛП
способ оплаты услугизначения: 'BP' - пациентом, 'FP' - из программы (СП или ЛП), 'MI' - по мед. показаниям
IsPaidint, но по сути - bitNOT NULL
0 или 1
флаг, оплачена ли услуга или нет (признак оплаты)Оплаченными считаем:
  • Для обычных отпусков (способ оплаты не из ЛП): способ оплаты по мед. показаниям или из программы ИЛИ цена услуги больше либо равна 0 и есть оплаченный счет ИЛИ цена услуги равно 0 ИЛИ услуга была оплачена из внешней системы без ошибок (Appointment.ExternalId not in ('#error','#sentToBus'))
  • Для ЛД со счетом: способ оплаты по мед. показаниям или из программы ИЛИ цена ЛД больше либо равна 0 и в счете последняя транзакция была платной транзакцией ИЛИ цена ЛД равна 0 ИЛИ услуга была оплачена из внешней системы без ошибок (Appointment.ExternalId not in ('#error','#sentToBus'))
  • Для ЛД без счета: способ оплаты по мед. показаниям или из программы ИЛИ цена ЛД равна 0 ИЛИ услуга была оплачена из внешней системы без ошибок (Appointment.ExternalId not in ('#error','#sentToBus'))
  • Для обычных отпусков со способом оплаты из ЛП или просто ЛП: способ оплаты по мед. показаниям (вероятно, лишнее старое условие) ИЛИ ЛП не из внешней системы (MedicalRecordTreatmentProgram.IsExternal = 0) и в счете последняя транзакция была оплатной транзакцией ИЛИ ЛП из внешней системы (MedicalRecordTreatmentProgram.IsExternal = 1) ИЛИ услуга была оплачена из внешней системы без ошибок (Appointment.ExternalId not in ('#error','#sentToBus'))
IsPerformedint, но по сути - bitNULL
null где только ЛП
флаг, отпущена ли услуга или нет (признак отпуска)

Отпущенными считаем

  • Для всех обычных отпусков: отпуск не удален (AppointmentDeletedDate is null) И отпуск завершен по его статусу (AppointmentStatus = 'F' and DateTimeComplete is not null или это ЛИ и в настройках стоит отпуск по забору материала) И пациент на прием явился (PrescriptionStatus <> 'O') И ИБ не в статусе "незаезд" или "отмена брони" И ИБ не удалена
  • Для всех ЛД: отпуск не удален И пациент на прием явился И назначение не удалено (вероятно старая логика, удаленные назначения сейчас сохранить в БД нельзя)
Quantitydecimal(38,5)NULL
но значения null быть не может
количество отпущенной услугидля обычных услуг и ЛП - всегда 1, для ЛД - все количество ЛД, так как они отпускаются полностью в рамках отпуска услуги
OriginalPricemoneyNULLцена услуги до всех скидок за все количество Quantity
OriginalPricePerOnemoneyNULLцена услуги за 1 штуку
TotalPricemoneyNULLцена услуги из листа назначенийучитывается скидка по лояльности и скидка по ЛП, без скидки из счета
цена берется из прайс листа
PricePerOnemoneyNULLцена услуги из листа назначений за 1 штукудля обычных отпусков и ЛП равна значению TotalPrice

цена берется из прайс листа

BillItemOriginalPricemoneyNULLцена услуги из счета до скидки по счетуцена услуги, оплаченной ил ЛП - 0, т.к. оплачивается сама ЛП
BillItemOriginalPricePerOnemoneyNULLцена услуги из счета до скидки по счету за 1 штукуцена услуги, оплаченной ил ЛП - 0, т.к. оплачивается сама ЛП
BillItemTotalPricemoneyNULLцена услуги из счета со скидкой из счетацена услуги, оплаченной ил ЛП - 0, т.к. оплачивается сама ЛП
BillItemTotalPricePerOnemoneyNULLцена услуги из счета со скидкой из счета за 1 штукуцена услуги, оплаченной ил ЛП - 0, т.к. оплачивается сама ЛП
TaxRateIdnvarchar(70)NULLid налога
TaxRatedecimal(18,10)NULLпроцент налогадля ЛП и услуг, оплаченных из ЛП - налог не учитывается
TaxAmountmoneyNULLсумма включенного налогадля ЛП и услуг, оплаченных из ЛП - всегда 0
PatientSpentTimeintNULLдлительность отпуска услуги фактическаявыводится время от фактического начала отпуска услуги по фактического его завершения; для ЛД время учитывается из отпуска обычной услуги (Appointment)
AppointmentStatuschar(1)NULLстатус отпуска услугизначения: 'S' - начат, 'F' - завершен
PrescriptionStatuschar(1)NULLстатус назначениязначения: 'C' - ожидает утверждения, 'A' - назначен (утверждено), 'R' - отказано в утверждении, 'S' - начат, 'U' - приостановлено, 'D' - время назначено, 'O' - пациент не явился, 'T' - обработка результатов (после проведенного исследования), 'X' - назначение отменено
ReleaseStatuschar(1)NULLстатус отпуска услуги (диспетчеризации)значения: 'N' - новый, 'F' - завершенный, 'S' - начатый, 'P' - предварительный
AppointmentItemCostmoneyNULLфактическая цена услуги, доход от услугидля услуг со способом оплаты по мед. показаниям и из программы цена - 0, даже если в прайс листе больше 0
PrimeCostmoneyNULLсебестоимость из прайс листа
AppointmentScoreintNULLоценка удовлетворенности
AppointmentScoreCommentnvarchar(max)NULLкомментарий оценки удовлетворенности
ExternalIdnvarchar(20)NULL
коды ошибок: '#error','#sentToBus'
id услуги из внешней системы
ServicePointIdnvarchar(70)NULLid кабинета, в котором осуществлялся отпуск услуги
ServicePointMasterCodenvarchar(50)NULLMaster код кабинета, в котором осуществлялся отпуск услуги
PrescriptionIdnvarchar(70)

NULL
null где только ЛП

id назначения
PrescriptionTypechar(1)NULL
null где только ЛП
тип назначениячастично совпадает с типом услуги
значения: 'C' - консультация или ИИ, 'P' - лечебная процедура, 'L' - ЛИ, 'M' - медикамент
PrescriptionCancelledDatedatetimeNULLдата и время отмены назначения
BillIdnvarchar(70)NULLid счета
BillStatuschar(1)NULLстатус счетазначения: 'N' - создан, 'P' - оплачен, 'C' - отменен, 'R' - распечатан, 'S' - частично оплачен (устарело)
PaidDatedatetimeNULLдата оплаты счета
BillItemIdnvarchar(70)NOT NULL
0, если если без значения
id элемента счетаPK
PaymentInstrumentNamenvarchar(50)NULLнаименование платежного инструмента
PaymentInstrumentCodenvarchar(10)NULLкод платежного инструмента
PaymentTypenvarchar(10)NULLкод способа оплатызначения: 'C' - наличные, 'CC' - кредитные карты, 'CCT' - кредитные карты (процессинг), 'E' - внешний, 'CERT' - сертификат
MedicalRecordTreatmentProgramIdnvarchar(70)NOT NULL
0, если если без значения
id лечебной программы из ИБPK
указывается в строках только с ЛП и в строках с услугой, оплаченной из этой ЛП
UserIdInitiatornvarchar(70)NULLid пользователя, создавшего назначение (инициатора)
UserIdInitiatorFullNamenvarchar(302)NULLФИО пользователя, создавшего назначение
UserIdCompletenvarchar(70)NULLid пользователя, выполнившего отпуск
UserIdCompleteFullNamenvarchar(302)NULLФИО пользователя, выполнившего отпуск
IsDispatchedint, но по сути - bitNOT NULLфлаг, диспетчеризована услуга или нет (признак диспетчеризации)1, когда есть неудаленная диспетчеризация у услуги, иначе - 0
GenericResultchar(2)NULLкод результата исследованиязначения: 'OK' - норма (патологий не выявлено, кол-во - 0), 'PR' - отклонение (выявлено патологий больше 0), 'CT' - "Cito!", 'NA' - не указано (ничего из вышеперечисленного не указано)
PathologyCountintNULLколичество выявленных патологий в исследованиизначение из шаблона исследования "Патологий выявлено всего"
FirstTimePathologyCountintNULLколичество впервые выявленных патологийзначение из шаблона исследования "из них впервые"
ExaminationDateTimedatetimeNULLдата начала медицинского обследования
ExaminationCompletionStartDatedatetimeNULLдата окончания медицинского обследования
AppointmentDeletedDatedatetimeNULLдата и время удаления отпускапо этому полю можно отфильтровывать удаленные отпуски (AppointmentDeletedDate is null)
AppointmentUserIdDeletednvarchar(70)NULLid пользователя, удалившего отпуск
MedicalRecordTreatmentProgramDeletedDatedatetimeNULLдата и время удаления ЛП в ИБ пациента
MedicalRecordTreatmentProgramUserIdDeletednvarchar(70)NULLid пользователя, удалившего ЛП в ИБ пациента
TreatmentProgramIdnvarchar(70)NULLid ЛП из справочника в администрировании
TreatmentProgramMasterCodenvarchar(50)NULL

Master код ЛП


CustomPrescriptionsListnvarchar(200)NULLидентификатор пользовательского листа назначений
ScheduleItemDurationintNULLпродолжительность отпуска из диспетчеризации
ActualDatedatetimeNOT NULL

дата и время, по которому хранилище определяет, что необходима сверка данных


*PK - Primary Key, первичный ключ

  • No labels