如何根据特定床位的占用日期填写医院数据库中患者表的床号栏

时间:2013-03-19 02:05:50

标签: sql sql-server tsql sql-server-2012

我正在为我的项目研究医院数据库。我有病人,床,医生等表。患者台和床台具有Beg_Date和End_Date,患者入院并且床分别被占用。

我想在bed_No表中用patient列填充空床编号(即如果床没有被任何患者占用)。我的问题是我只有300张病床可以容纳500张病人。因此,我完全不确定如何通过比较Beg_DateEnd_Date患者填写床位数。我还希望将这些信息保存在patientIDBeg_DateEnd_Date列下的床位表内(即哪些病人占据哪个病床哪个日期的信息)。对于这张床单我只知道有一个“On Insert Cascade”和“On delete cascade”但不确定如何使用它。

2 个答案:

答案 0 :(得分:3)

我也在医院工作。

您绝对不希望将床数据放入患者表格中。床位数据是访问的一部分,而不是一个人的一部分。首先,患者可能有多次就诊。此外,如果您的医院与我的一样,患者可以在访问期间换床。重症监护室和普通护理单位之间的转移很常见。

如果您的医院将500人放入300张病床,请了解现实生活中的情况,并相应地设计数据库。

编辑从此处开始

根据杰森的评论,你可以有一张床位和一张床头柜。然后你可用的床就像:

select bed_id
from bed
minus
select bed_id
from bed_occupancy
where enter_datetime is not null
and departure_datetime is null

然后由用户将患者分配到空床上。在现实生活中还有其他一些考虑因素,例如一些病床位于外科病房,一些病床位于重症监护室等。临床工作人员在病人之间短途行走时更有效。

答案 1 :(得分:2)

添加一个额外的列,称为 bed_status ,并具有一些预定义的状态,例如可用,已占用,已保留等。

无论患者如何,只考虑床号作为您的唯一身份。

每当患者入院或出院时,或在某些重要病例转移时,都会更新此床位。

注意 - 如果可能,请将患者编号分配给该特定床编号。同样在患者出院或入院时更新两者。

根据状态运行查询,找到占用床位,床位和预留床位等。

SELECT COUNT(bed_status)AS availableBeds FROM bed_table WHERE bed_status ='Available'

SELECT COUNT(bed_status)AS occupBeds FROM bed_table WHERE bed_status ='Occupied'

SELECT COUNT(bed_status)AS reservedBeds FROM bed_table WHERE bed_status ='Reserved'