当你从药房得到处方时,有一个与药物相关的起始日期。药物也有一个预定的频率,告诉你什么时候服用剂量。频率有相当常见的模式。你可以每4小时服用一次。你可以每天服用一次。你可以在吃饭的时候吃,也可以在睡前吃。您也可以采取他们的PRN或“根据需要。”许多药物也会停药。你可能需要服药7天。你可能需要服用一定数量的剂量。你也可以在你的余生里服药。假设您必须实施一个系统来告诉护士病人何时应该接受药物治疗。您将如何建立一个处理开始日期、结束日期和频率的药物治疗时间表?
我已经完成了基本的设计..但我仍然停留在执行时间表功能(通知功能,通知护士的用药频率)
我的解决办法是
频率类别
package patientmedicine;
公开课频率{
public PartoftheDay part;
public enum PartoftheDay
{
Morning,
Afternoon,
Evening,
Night
}
public Frequency( PartoftheDay part ) {
this.part = part;
}
public PartoftheDay getPart() {
return part;
}
public void setPart(PartoftheDay part) {
this.part = part;
}
}
医学类
package patientmedicine;
导入java.util.List;
公共医疗类{
private String name;
private String disease;
private String composition;
private String details;
private List<Frequency> frequencyList;
public List<Frequency> getFrequencyList() {
return frequencyList;
}
public void setFrequencyList(List<Frequency> frequencyList) {
this.frequencyList = frequencyList;
}
public String getName() {
return name;
}
public Medicine(String name, String composition, String details) {
this.name = name;
this.setComposition(composition);
this.setDetails(details);
}
public void setName(String name) {
this.name = name;
}
public String getDisease() {
return disease;
}
public void setDisease(String disease) {
this.disease = disease;
}
/**
* @return the composition
*/
public String getComposition() {
return composition;
}
/**
* @param composition the composition to set
*/
public void setComposition(String composition) {
this.composition = composition;
}
/**
* @return the details
*/
public String getDetails() {
return details;
}
/**
* @param details the details to set
*/
public void setDetails(String details) {
this.details = details;
}
}
package patientmedicine;
private String name;
private String disease;
private List<Medicine> medicineList;
public Patient(String name, String disease) {
this.setName(name);
this.setDisease(disease);
}
public List<Medicine> getMedicineList() {
return medicineList;
}
public void setMedicineList(List<Medicine> medicineList) {
this.medicineList = medicineList;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the disease
*/
public String getDisease() {
return disease;
}
/**
* @param disease the disease to set
*/
public void setDisease(String disease) {
this.disease = disease;
}
package patientmedicine;
public static void main(String[] args) {
List<Frequency> freque1 = new ArrayList<Frequency>();
freque1.add(new Frequency(PartoftheDay.Morning));
freque1.add(new Frequency(PartoftheDay.Evening));
// List<Medicine> medicine = new ArrayList<Medicine>();
Medicine med1 = new Medicine("Paracetemol", "38g", "For fever");
med1.setFrequencyList(freque1);
List<Frequency> freque2 = new ArrayList<Frequency>();
freque2.add(new Frequency(PartoftheDay.Morning));
freque2.add(new Frequency(PartoftheDay.Evening));
Medicine med2 = new Medicine("Ibuprofen", "38g", "For body pains");
med2.setFrequencyList(freque2);
List<Medicine> medicineList = new ArrayList<Medicine>();
medicineList.add(med1);
medicineList.add(med2);
Patient patient1 = new Patient("Deepthi", "For body pains");
patient1.setMedicineList(medicineList);
List<Patient> patientList = new ArrayList<Patient>();
patientList.add(patient1);
for (Patient patientt : patientList) {
System.out.println(patientt.getDisease());
System.out.println(patientt.getName());
for (Medicine medi : patientt.getMedicineList()) {
System.out.println(medi.getDetails() + medi.getComposition()
+ medi.getName());
for (Frequency freq : medi.getFrequencyList()) {
System.out.println(freq.getPart());
}
}
}
}
}
下面是按照Jay的建议使用侦听器的部分实现。您可以将这些基本代码合并到部分实现中。
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
interface AlarmListener {
void notify(Frequency.PartoftheDay time, String msg);
}
class Nurse implements AlarmListener {
private String name;
private Set<Frequency.PartoftheDay> times = new HashSet<>();
Nurse(String name) {
this.name = name;
}
// Add times of day that this nurse will be notified
public void addTime(Frequency.PartoftheDay time) {
this.times.add(time);
}
public void notify(Frequency.PartoftheDay time, String msg) {
if (times.contains(time)) {
System.out.println("Nurse " + name + ", you are being notified of event: " + msg);
}
}
@Override
public String toString() {
StringBuffer b = new StringBuffer();
b.append(name).append(": scheduled for\n");
for (Frequency.PartoftheDay time : times) {
b.append(" ").append(time).append("\n");
}
return b.toString();
}
}
class Scheduler {
List<AlarmListener> alarmListenerList = new ArrayList<>();
public void addListener(AlarmListener alarmListener) {
alarmListenerList.add(alarmListener);
}
public void rollCall() {
System.out.println("Roll call:");
for (AlarmListener a : alarmListenerList) {
System.out.println(a.toString());
}
}
public void notifyListeners(Frequency.PartoftheDay time) {
for (AlarmListener a : alarmListenerList) {
a.notify(time, time.name());
}
}
}
class Frequency {
public enum PartoftheDay
{
Morning,
Afternoon,
Evening,
Night
}
public PartoftheDay part;
}
public class Main {
public static void main(String[] args) {
Nurse alice = new Nurse("Alice");
alice.addTime(Frequency.PartoftheDay.Morning);
alice.addTime(Frequency.PartoftheDay.Afternoon);
Nurse bob = new Nurse("Bob");
bob.addTime(Frequency.PartoftheDay.Afternoon);
bob.addTime(Frequency.PartoftheDay.Evening);
Scheduler scheduler = new Scheduler();
scheduler.addListener(alice);
scheduler.addListener(bob);
// Show who is scheduled to respond to alarms and when
scheduler.rollCall();
// Do this if "Morning" has arrived
System.out.println("Morning now! ----------------");
scheduler.notifyListeners(Frequency.PartoftheDay.Morning);
System.out.println("");
// Do this if "Afternoon" has arrived
System.out.println("Afternoon now! --------------");
scheduler.notifyListeners(Frequency.PartoftheDay.Afternoon);
System.out.println("");
// Do this if "Evening" has arrived
System.out.println("Evening now! --------------");
scheduler.notifyListeners(Frequency.PartoftheDay.Evening);
}
}
输出:
Roll call:
Alice: scheduled for
Morning
Afternoon
Bob: scheduled for
Afternoon
Evening
Morning now! ----------------
Nurse Alice, you are being notified of event: Morning
Afternoon now! --------------
Nurse Alice, you are being notified of event: Afternoon
Nurse Bob, you are being notified of event: Afternoon
Evening now! --------------
Nurse Bob, you are being notified of event: Evening
我对std::condition_变量的用法有点困惑。我知道在调用。我找不到的是,在调用或之前,我是否还应该获取一个唯一的锁。 cppreference.com的例子是相互矛盾的。例如,notify_one页面给出了这个例子: 在这里,锁不是为第一个获取的,而是为第二个获取的。查看其他页面上的示例,我看到了不同的东西,大多数情况下没有获得锁。 在调用之前,我可以选择自己锁定互斥锁吗?我为什么选择锁
问题内容: 我在服务器端有PHP,在客户端有HTML和javascript。 我正在制作一个应用程序,其中利益相关者键入一条消息,该消息实时广播到一个组的多个接收者。 我在Google上做了一些研究,我了解我需要使用WebSockets或Comet进行实时推送通知。WebSocket或Comet是向用户发送大量通知的必需项吗? 我的理解正确吗?有什么参考开始吗? 问题答案: 如果客户端是浏览器,则
OptaPlanner是在马拉维一家医院工作时发现的,它非常适合解决这个问题。一些新手问题: 1) 我看不到一种轻松进入假期的方法(除了多天的休假请求),可以看看如何添加这一点,但不希望重新发明轮子。 2) 我看不出有什么办法可以增加一个限制,让护士在上夜班之前Rest一天,在上夜班之后Rest两天(只有两班,白天和晚上)。我很感激地收到了任何建议,不知道从哪里开始。 非常感谢
基础问题 recyclerview和listview的区别;两者性能之间的差距 view绘制原理、绘制流程,自定义View的操作,如何获取view的宽高,自定义View如何提供获取View属性的接口? HashMap,HashMap底层,HashMap线程安全 线程和进程的区别 Handler,通过Handler传递的线程对象的生命周期,传递的时候涉及几次拷贝? RecyclerView和List
主要内容:一 前情回顾,二 正式开始,三 总结一 前情回顾 上篇文章《做了几年开发,你知道自己的系统为什么要用消息中间件吗?》,给大家讲了讲消息中间件引入系统架构的作用,主要是解决哪些问题的。 其比较常见的实践场景是: 复杂系统的解耦 复杂链路的异步调用 瞬时高峰的削峰处理 二 正式开始 这篇文章给大家讲讲,如果你在系统架构里引入了消息中间件之后,会有哪些缺点? 1 系统可用性降低 首先是你的系统整体可用性绝对会降低,给你举个例子,我们就拿之
我正在使用Spring Boot实现OAuth2授权。我已经有了授权服务器和资源服务器,现在我想使用授予类型从资源服务器访问资源。 我对此有点困惑,因为在资源服务器中,我必须添加和。但为什么资源服务器真的需要它呢? 据我所知,客户端应该使用客户端凭据从授权服务器获取他的访问令牌。然后将此访问令牌发送到资源服务器,而不使用任何客户端凭据。 那么,为什么资源服务器还需要一些客户端凭据呢?资源服务器和客