diff --git a/netforce_clinic/layouts/patient_move_form.xml b/netforce_clinic/layouts/patient_move_form.xml
index c4286ec..4df8d7c 100644
--- a/netforce_clinic/layouts/patient_move_form.xml
+++ b/netforce_clinic/layouts/patient_move_form.xml
@@ -6,6 +6,7 @@
-
+
+
diff --git a/netforce_clinic/models/new_patient.py b/netforce_clinic/models/new_patient.py
index 24f1dd5..f5c2178 100644
--- a/netforce_clinic/models/new_patient.py
+++ b/netforce_clinic/models/new_patient.py
@@ -163,6 +163,7 @@ class NewPatient(Model):
vals={
'patient_id': patient_id,
+ 'patient_type_id': patient.type_id.id,
'location_from_id': obj.location_from_id.id,
'location_to_id': obj.location_to_id.id,
'state': 'new',
diff --git a/netforce_clinic/models/patient_move.py b/netforce_clinic/models/patient_move.py
index dde8f8b..90cb7af 100644
--- a/netforce_clinic/models/patient_move.py
+++ b/netforce_clinic/models/patient_move.py
@@ -12,6 +12,7 @@ class PatientMove(Model):
_fields={
'patient_id': fields.Many2One('clinic.patient','Patient',search=True, required=True),
+ 'patient_type_id': fields.Many2One("clinic.patient.type","Patient Type"),
'date': fields.Date("Date", required=True,search=True),
'location_from_id': fields.Many2One("clinic.department","Location From",search=True,required=True),
'location_to_id': fields.Many2One("clinic.department","Location To",search=True,required=True),
@@ -35,6 +36,7 @@ class PatientMove(Model):
data.update({
'location_from_id': location_from_id,
'location_to_id': location_to_id,
+ 'patient_type_id': patient.type_id.id,
})
return data
@@ -76,12 +78,16 @@ class PatientMove(Model):
['date','<=','%s-%s-%s'%(y,str(m).zfill(2),day_month)],
['location_to_id','=', department_id],
]
+
cond=cond1+[['state','=','normal']]
ids=self.search(cond)
+ move_ids=ids
+
prev_month=len(ids)
cond=cond1+[['state','=','new']]
ids=self.search(cond)
+ move_ids+=ids
current_month=len(ids)
current_items=[]
for index, val in enumerate(self.read(ids)):
@@ -91,12 +97,35 @@ class PatientMove(Model):
cond=cond1+[['state','=','dispose']]
ids=self.search(cond)
+ dispose_ids=ids
dispose_month=len(ids)
dispose_items=[]
for index, val in enumerate(self.read(ids)):
val['no']=index+1
dispose_items.append(val)
+ move_ids=[id for id in move_ids if id not in dispose_ids]
+
+ # group by type
+ types={}
+ for move in get_model("clinic.patient.move").browse(move_ids):
+ type_name=move.patient_type_id.name
+ types.setdefault(type_name,0)
+ types[type_name]+=1
+
+ patient_types={}
+ for pt in get_model("clinic.patient.type").search_browse([]):
+ patient_types[pt.name]=types.get(pt.name, '')
+
+ type_lines=[]
+ type_names=sorted(patient_types.keys())
+ for type_name in type_names:
+ qty=patient_types[type_name]
+ type_lines.append({
+ 'name': type_name,
+ 'qty': qty,
+ })
+
next_month=prev_month+current_month-dispose_month
prev_m=m-1
@@ -125,6 +154,7 @@ class PatientMove(Model):
'next_month': next_month,
'next_month_thai': next_month_thai,
+ 'type_lines': type_lines,
}
return res
@@ -178,6 +208,7 @@ class PatientMove(Model):
'location_from_id': obj.location_from_id.id,
'location_to_id': obj.location_to_id.id,
'patient_id': obj.patient_id.id,
+ 'patient_type_id': obj.patient_type_id.id,
'date': date,
}
self.create(vals)
@@ -202,6 +233,7 @@ class PatientMove(Model):
'location_from_id': locations[locs[0]], #first
'location_to_id': locations[locs[-1]], #last
'patient_id': obj.id,
+ 'patient_type_id': obj.type_id.id,
'note': obj.note,
'date': date,
}
diff --git a/netforce_clinic/models/report_hdcase_summary.py b/netforce_clinic/models/report_hdcase_summary.py
index 3a3a5d7..66476c6 100644
--- a/netforce_clinic/models/report_hdcase_summary.py
+++ b/netforce_clinic/models/report_hdcase_summary.py
@@ -30,6 +30,7 @@ class ReportHDCaseSummaryV2(Model):
def get_report_data(self, ids, context={}):
user_id=get_active_user()
+ user=get_model('base.user').browse(user_id)
defaults=self.default_get(context=context)
month=defaults.get("month")
y,m,d=month.split("-")
@@ -96,7 +97,10 @@ class ReportHDCaseSummaryV2(Model):
'titles': medical_titles,
'date': month,
'can_edit': False,
+ 'date_print': time.strftime("%Y-%m-%d %H:%M:%S"),
+ 'user_name': user.name,
}
+ #TODO separate next month by patient type
data2=get_model("clinic.patient.move").get_data(date=month, department_id=department_id)
data.update(data2)
@@ -105,9 +109,6 @@ class ReportHDCaseSummaryV2(Model):
data.update({
'can_edit': True,
})
-
- from pprint import pprint
- pprint(data)
return data
ReportHDCaseSummaryV2.register()
diff --git a/netforce_clinic/reports/report_hdcase_summary.xlsx b/netforce_clinic/reports/report_hdcase_summary.xlsx
index 8a209fd..c67a76e 100644
Binary files a/netforce_clinic/reports/report_hdcase_summary.xlsx and b/netforce_clinic/reports/report_hdcase_summary.xlsx differ
diff --git a/netforce_clinic/templates/report_hdcase_summary.hbs b/netforce_clinic/templates/report_hdcase_summary.hbs
index 3bc4782..b36f8e9 100644
--- a/netforce_clinic/templates/report_hdcase_summary.hbs
+++ b/netforce_clinic/templates/report_hdcase_summary.hbs
@@ -43,17 +43,22 @@
จำนวนครั้งการทำ Hemodialysis | {{month_thai}} | เท่ากับ | {{total_hdcase}} | ครั้ง |
- จำนวนผู้ป่วยยกมาจากเดือน | {{prev_month_thai}} | เท่ากับ | {{prev_month}} | ครั้ง |
+ จำนวนผู้ป่วยยกมาจากเดือน | {{prev_month_thai}} | เท่ากับ | {{prev_month}} | คน |
- จำนวนผู้ป่วยรับใหม่เดือน | {{current_month_thai}} | เท่ากับ | {{current_month}} | ครั้ง |
+ จำนวนผู้ป่วยรับใหม่เดือน | {{current_month_thai}} | เท่ากับ | {{current_month}} | คน |
- จำนวนผู้ป่วยจำหน่ายเดือน | {{dispose_month_thai}} | เท่ากับ | {{dispose_month}} | ครั้ง |
+ จำนวนผู้ป่วยจำหน่ายเดือน | {{dispose_month_thai}} | เท่ากับ | {{dispose_month}} | คน |
- จำนวนผู้ป่วยยกไปเดือน | {{next_month_thai}} | เท่ากับ | {{next_month}} | ครั้ง |
+ จำนวนผู้ป่วยยกไปเดือน | {{next_month_thai}} | เท่ากับ | {{next_month}} | คน |
+ {{#each type_lines}}
+
+ {{name}} | | เท่ากับ | {{qty}} | คน |
+
+ {{/each}}