package open.dolphin.infomodel; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Temporal; /** * * @author kazushi Minagawa */ @Entity @Table(name = "d_care_plan") public class CarePlanModel extends InfoModel implements Serializable { // PK @Id @GeneratedValue(strategy=GenerationType.AUTO) private long id; @Temporal(javax.persistence.TemporalType.DATE) private Date startDate; @Temporal(javax.persistence.TemporalType.DATE) private Date endDate; @Temporal(javax.persistence.TemporalType.TIMESTAMP) private Date created; @Temporal(javax.persistence.TemporalType.TIMESTAMP) private Date updated; private long karteId; private String userId; private String commonName; private String status; // 頻度 private Integer frequency; // Entity private String entity; // 診療行為セットにユーザーがつける名前 (ex. 風邪セット etc.) == stampName private String stampName; //-------------------------------------------------------- // 以下 Bundle 情報 //-------------------------------------------------------- // 診療行為名 CLAIM規格 private String className; // 診療行為コード CLAIM規格 private String classCode; // 診療行為コード体系 CLAIM規格 private String classCodeSystem; // 用法 private String administration; // 用法コード private String adminCode; // 用法コード体系 private String adminCodeSystem; // 用法メモ private String adminMemo; // バンドル数 private String bundleNumber; // メモ private String memo; // 保険種別 private String insurance; // order name(日本語) private String orderName; @OneToMany(mappedBy="carePlan", cascade=CascadeType.ALL, fetch=FetchType.EAGER, orphanRemoval=true) private Set<CarePlanItem> carePlanItems; public long getId() { return id; } public void setId(long id) { this.id = id; } public Date getStartDate() { return startDate; } public void setStartDate(Date startDate) { this.startDate = startDate; } public Date getEndDate() { return endDate; } public void setEndDate(Date endDate) { this.endDate = endDate; } public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } public Date getUpdated() { return updated; } public void setUpdated(Date updated) { this.updated = updated; } public long getKarteId() { return karteId; } public void setKarteId(long karteId) { this.karteId = karteId; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getCommonName() { return commonName; } public void setCommonName(String commonName) { this.commonName = commonName; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public Integer getFrequency() { return frequency; } public void setFrequency(Integer frequency) { this.frequency = frequency; } public String getEntity() { return entity; } public void setEntity(String entity) { this.entity = entity; } public String getStampName() { return stampName; } public void setStampName(String stampName) { this.stampName = stampName; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public String getClassCode() { return classCode; } public void setClassCode(String classCode) { this.classCode = classCode; } public String getClassCodeSystem() { return classCodeSystem; } public void setClassCodeSystem(String classCodeSystem) { this.classCodeSystem = classCodeSystem; } public String getAdministration() { return administration; } public void setAdministration(String administration) { this.administration = administration; } public String getAdminCode() { return adminCode; } public void setAdminCode(String adminCode) { this.adminCode = adminCode; } public String getAdminCodeSystem() { return adminCodeSystem; } public void setAdminCodeSystem(String adminCodeSystem) { this.adminCodeSystem = adminCodeSystem; } public String getAdminMemo() { return adminMemo; } public void setAdminMemo(String adminMemo) { this.adminMemo = adminMemo; } public String getBundleNumber() { return bundleNumber; } public void setBundleNumber(String bundleNumber) { this.bundleNumber = bundleNumber; } public String getMemo() { return memo; } public void setMemo(String memo) { this.memo = memo; } public String getInsurance() { return insurance; } public void setInsurance(String insurance) { this.insurance = insurance; } public String getOrderName() { return orderName; } public void setOrderName(String orderName) { this.orderName = orderName; } public Set<CarePlanItem> getCarePlanItems() { return carePlanItems; } public void setCarePlanItems(Set<CarePlanItem> carePlanItems) { this.carePlanItems = carePlanItems; } @Override public int hashCode() { final int PRIME = 31; int result = 1; result = PRIME * result + (int) (id ^ (id >>> 32)); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final CarePlanModel other = (CarePlanModel) obj; if (id != other.id) return false; return true; } public ModuleModel toModleModel() { ModuleModel result = new ModuleModel(); ModuleInfoBean info = result.getModuleInfoBean(); info.setEntity(this.getEntity()); info.setStampName(this.getStampName()); info.setStampRole(IInfoModel.ROLE_P); ClaimBundle bundle = (this.getEntity().equals(IInfoModel.ENTITY_MED_ORDER)) ? new BundleMed() : new BundleDolphin(); result.setModel(bundle); bundle.setAdmin(this.getAdministration()); bundle.setAdminCode(this.getAdminCode()); bundle.setAdminCodeSystem(this.getAdminCodeSystem()); bundle.setAdminMemo(this.getMemo()); bundle.setBundleNumber(this.getBundleNumber()); bundle.setClassCode(this.getClassCode()); bundle.setClassCodeSystem(this.getClassCodeSystem()); bundle.setClassName(this.getClassName()); bundle.setInsurance(this.getInsurance()); bundle.setMemo(this.getMemo()); Iterator<CarePlanItem> iter = this.getCarePlanItems().iterator(); List<ClaimItem> list = new ArrayList(); while (iter.hasNext()) { CarePlanItem item = iter.next(); list.add(item.toClaimItem()); } ClaimItem[] items = list.toArray(new ClaimItem[0]); bundle.setClaimItem(items); return result; } }