医院容量规划模拟

在医院管理中,准确预测和规划医院的容量是至关重要的。这不仅涉及到床位的分配,还涉及到资源的合理利用,以确保在任何时候都能为患者提供必要的医疗服务。为了帮助医院管理者更好地进行这一工作,开发了一套基于R语言的模拟系统。该系统允许用户通过一个简单的用户界面输入参数,然后自动运行模拟,生成医院容量规划的预测结果。

用户界面设计

用户界面的设计考虑到了非程序员的需求,因此采用了一个简单的表单来收集用户输入的参数。用户只需要在相应的输入框中填写床位数量、重复次数、周期和到达间隔时间等参数,然后提交表单即可。表单提交后,这些参数将通过GET方法传递给PHP页面,由PHP页面调用R脚本进行模拟计算。

以下是用于收集用户输入的HTML表单代码示例:

<form class="form-horizontal" action="runr.php" method="get"> <fieldset> <legend>输入模拟参数</legend> <div class="form-group"> <label class="col-md-4 control-label" for="nbeds">床位数量:</label> <div class="col-md-4"> <input id="nbeds" name="nbeds" type="text" placeholder="床位数量" class="form-control input-md" required=""> </div> </div> <div class="form-group"> <label class="col-md-4 control-label" for="myrep">重复次数:</label> <div class="col-md-4"> <input id="myrep" name="myrep" type="text" placeholder="重复次数" class="form-control input-md" required=""> </div> </div> <div class="form-group"> <label class="col-md-4 control-label" for="period">周期:</label> <div class="col-md-4"> <input id="period" name="period" type="text" placeholder="周期(天)" class="form-control input-md" required=""> </div> </div> <div class="form-group"> <label class="col-md-4 control-label" for="myIAT">到达间隔时间:</label> <div class="col-md-4"> <input id="myIAT" name="myIAT" type="text" placeholder="到达间隔时间(天)" class="form-control input-md" required=""> </div> </div> <div class="form-group"> <label class="col-md-4 control-label" for="submit"></label> <div class="col-md-4"> <input type="submit" class="btn btn-info" value="运行模拟"> </div> </div> </fieldset> </form>

一旦表单被提交,用户将被重定向到PHP页面,该页面将执行以下四个功能:

  1. 清空输出文件夹,以避免上一次模拟的结果影响当前模拟。
  2. 获取HTML表单提交的值,并将它们存储在变量中,以便作为R脚本所需的参数。
  3. 执行R脚本,并将参数传递到shell命令中。
  4. 将R脚本的输出显示为图像,并在输出文件夹中创建文件链接。

为了在Ubuntu服务器上运行R脚本,需要对R脚本进行一些调整。首先,需要改变工作目录,然后使用commandArgs()函数扫描R脚本调用时提供的参数。接下来,将参数存储在变量中。

setwd('/var/www/html/mycmd/output/') args <- commandArgs(TRUE) ## 输入模拟参数 nbeds <- as.integer(args[1]) ## 床位数量 myrep <- as.integer(args[2]) ## 重复次数 period <- as.integer(args[3]) ## 运行周期 myIAT <- as.numeric(args[4]) ## 到达间隔时间(天)

为了将图表导出到PHP扫描的文件夹中,并在网页上显示,需要修改R脚本,以便将图表导出到指定的文件夹中。

MyDataPlot <- grid.arrange(p1, p2, p3, p4, ncol=2) png(filename="/var/www/html/mycmd/output/output.png", width=800, height=600) plot(MyDataPlot) dev.off()

在Ubuntu上安装R语言和必要的包:

sudo apt-get update sudo apt-get -y install r-base install.packages("simmer") install.packages("ggplot2") install.packages("gridExtra") install.packages("dplyr") install.packages("tidyr")

这些设置需要大量优化以获得最佳性能,在这里展示的是一个简单的调用R脚本的方法。如果模拟重复次数(myrep)大于1000,需要特别注意资源消耗。

  • [1] 集成PHP和R
  • [2] 在PHP中执行R
  • [3] 从命令行向R脚本传递参数
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485