2016-09-26 3 views
0

を取る必要があり、薬物療法に関連した開始日があります。薬も投与量を取る方法を説明します、スケジュール周波数を持っています。周波数にはかなり一般的なパターンがあります。あなたは4時間ごとにそれを取ることができます。あなたは一日一回それらを取ることができます。あなたは食事とともに、またはベッドの直前に飲むことができます。また、PRNや「必要に応じて」でもかまいません。多くの医薬品にも停止があります。あなたは7日間薬を服用する必要があります。あなたは一定数の線量を取る必要があるかもしれません。あなたは、あなたの人生の残りの間、薬を服用するかもしれません。あなたは、患者が薬を受け取るべき時に看護師を伝えるためにシステムを実装する必要がありますと仮定します。どのようにして、日付、終了日、および周波数を開始扱う薬のスケジュールをモデル化するのでしょうか?あなたが薬局から処方箋を取得すると医学の周波数についての看護師を希望患者が

私は私が持っているソリューションは

周波数クラス

である私は、スケジュール機能を実装してこだわっている..but基本設計(医学周波数試合看護師を通知する通知機能)

を行っています

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; 

インポートjava.util.Listに。

パブリッククラス患者{

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; 

インポートjava.util.ArrayListの。 import java.util.List;

輸入patientmedicine.Frequency.PartoftheDay。

パブリッククラスプログラム{// プライベートリストpatientList。

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()); 
      } 

     } 

    } 

} 

}

+0

私のミス申し訳ありません。 JSを削除しました –

+1

あなたの質問を編集して、何が問題になっているかについてもう少し明確に説明してください。あなたは何を達成しようとしていますか?どのようにこれを達成しようとしましたか?あなたは何の部分を抱いていますか? –

+0

私は患者の薬と周波数を取るクラスを実装しました。しかし、スケジュール機能(患者が毎日服用しなければならない医学の頻度について看護師に通知する通知機能)を実装することに固執しました。 –

答えて

2

ジェイが示唆したようにここでリスナーを使用して部分的な実装です。この骨格コードを部分実装にマージできます。

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 
+0

私は正確に同じ実装を書こうとしていましたが、あなたはすでにそれをしました。よくやった。これを公開リポジトリに入れることはできますか? – Jay

+0

はい、いいですねジェイ、このアイデアに感謝します。あなたが気にしないなら、私を信用してください。 – akubot

+0

あなたが気にしないなら、あなたはそれに貢献することができます。私はそこに私の例を置く。 )良い答えがありました。 – Jay

関連する問題