【问题标题】:Daily hospital census: Summarize a table filtered for each date每日医院普查:汇总为每个日期过滤的表格
【发布时间】:2019-11-07 17:12:11
【问题描述】:

我正在尝试计算每天有多少病人在医院里,以及在哪个临床科室和专科。

有一张“患者流”表,其中包含患者住院期间的所有路径。

我能够使用另一个表“Patient Entry-Out Date”来计算这个度量,我在其中过滤了(ENTRY DATES = DATE REFERENCE 或 OUT DATES = null)。

但是,这样我就无法确定该患者的正确临床科室和专业。

例如:病人

03/13/2019 - 不应计入

03/14/2019 - 应计入临床:UNIDADE CORONARIANA 和专业:CARDIOLOGIA

03/15/2019 - 应计入临床:UNIDADE CORONARIANA 和专业:CARDIOLOGIA

03/16/2019 - 应计入临床:CIRÚRGICA III 和专业:CARDIOLOGIA

03/17/2019 - 应计入临床:CIRÚRGICA III 和专业:CARDIOLOGIA

03/18/2019 - 不应计算

我尝试创建一个索引并获取 Admissions 和 Entry Transfer 之间的最大值(表 Last entry),但无法每天都这样做。

是否可以在过滤表(之前的录取和条目)中为每个参考日期做一个摘要?

或者其他解决方案?

提前致谢!

Pbix 文件https://www.dropbox.com/s/bqhyj4gihb5g4la/Daily%20hospital%20census.pbix?dl=0

卡西奥 A. 安德拉德

【问题讨论】:

  • 一个有趣的问题。我可以要求澄清所需的输出吗?假设一位患者从 2019 年 3 月 27 日到 2019 年 4 月 3 日停留,报告过滤到 2019 年 3 月的整个月份,输出应该是什么?在这种情况下,他应该计入、不计入,还是不显示结果?
  • 我想要的输出是每日报告,我可以在其中按临床和专业进行过滤。如果过滤了整个 3 月,则应从 2019 年 3 月 27 日到 2019 年 3 月 31 日计算该患者。 !Valid XHTML。我尝试每天使用 SELECTEDVALUE 进行测量,但这样我无法计算一个月的 TOTAL
  • 因此,如果患者从 2019 年 3 月 27 日到 2019 年 3 月 29 日期间留在临床 A,则于 2019 年 3 月 30 日转到 B 部门并一直待到 2019 年 4 月 3 日出院, 2019 年 3 月的值应该算 A 的 3 个人日和 B 的 2 人日。我理解正确吗?
  • 如果我过滤 2019 年 3 月,“住院患者”度量的 TOTAL 应返回每天住院患者的总和。例如,如果 3 月的每一天我们有 50 名患者仍在住院,则此度量的结果应为 50*31=1550。您示例中的患者将在 2019 年 3 月 27 日计算; 2019 年 3 月 28 日; 03/29/19 临床 A 和 03/30/19 ; B 部门的 03/31/19。由于过滤器中不考虑四月,我们不会担心 04/01/19 - 04/03/19 的日子。我不知道我是否清楚。谢谢=]

标签: powerbi


【解决方案1】:

这是我能够创建的解决方案。 (工作pbix可以从here下载)

1。转型

我使用 PowerQuery 将原来的“Patient Flow”表转换为一个新表(名为“Patient Attendance”),如下所示。

在这个转换后的表格中,每一行代表患者在临床科室的就诊情况。患者可以因“入院”“进入转诊”而进入临床科室,也可因“输出转诊”、“医疗释放”“死亡”。每行有两个时间戳;当患者进入离开科室时。

请注意,在收集数据时,患者可能仍在科室。在这种情况下,该患者的退出时间戳为空白

2。建模

我创建了一个数据模型,它是一个星型模式,由一个事实表 PatientAttendance 和 3 个维度表 ClinicsSpecialtiesPatients 组成。此外,我们还有Calendar维度表,它与其他表没有任何物理关系,但用于度量计算和切片。

然后,我在此模型的基础上创建了衡量标准,该衡量标准计算了在任何给定日期或时间段内有多少患者留在临床部门。计算逻辑的基本概念是,

  1. 查看每位患者。
  2. 查看每个日历日期。
  3. 如果患者在给定日期留在任何科室,则增加 1 个计数。
Patient-Days Stayed = 
SUMX(
    'Patients',
    SUMX(
        'Calendar',
        IF(
            CALCULATE(
                COUNTROWS(
                    FILTER(
                        'PatientAttendance',
                        VAR CurrentDate = VALUES( 'Calendar'[Date] )
                        RETURN
                            'PatientAttendance'[Enter Timestamp].[Date] <= CurrentDate
                            && (
                                ISBLANK( 'PatientAttendance'[Exit Timestamp] )
                                || (
                                    NOT( ISBLANK( 'PatientAttendance'[Exit Timestamp] ) )
                                    && 'PatientAttendance'[Exit Timestamp].[Date] > CurrentDate
                                )
                            )
                    )
                )
             ) > 0, 1
        )
    )
)

结果看起来工作正常(忽略 1 月初的数字太小,这是由于源数据的抽样方法造成的)。如果我犯了任何错误,或者有任何更好的方法建议,我很想听听。

【讨论】:

  • 太棒了!!!我正在使用一个表格过滤患者流量日期并将其与 SELECTEDVALUE(日期)或 MAX(日期)进行比较,然后我无法直接计算总计。这种方法要好得多!还有一个问题:您是如何创建“患者出勤”表的?我尝试这样做:
  • 1) 排序考勤ID、时间戳;出现2)创建一个新的collum:IF(实际行的出勤ID等于下一行的出勤ID,然后得到TIMESTAMP/CLINIC/SPECIALTY)ELSE 'null'。这样,每个出勤ID的出现将按时间顺序排列对于每个条目,我都会得到相应的出口。有没有更好的办法?
  • 如果我的 pbix,您可能会找到 Power Query 代码。我所做的概述是,1)按出勤 ID 分组,2)按时间戳和出现次数排序,3)使用 List.Accumulate 提取部门的出勤率,从 enter 出现到 exit 出现,4) 将记录列表组合回一个表。
猜你喜欢
  • 2011-07-09
  • 1970-01-01
  • 2019-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多