improve cycle item report

conv_bal
watcha.h@almacom.co.th 2015-04-03 11:45:16 +07:00
parent 5387c9029e
commit 19139bbcc8
9 changed files with 83 additions and 17 deletions

View File

@ -1,4 +1,6 @@
<form model="clinic.vascular.access"> <form model="clinic.vascular.access">
<field name="name"/> <field name="name"/>
<field name="code"/>
<field name="description"/>
<field name="note"/> <field name="note"/>
</form> </form>

View File

@ -1,4 +1,5 @@
<list model="clinic.vascular.access"> <list model="clinic.vascular.access">
<field name="name"/> <field name="name"/>
<field name="note"/> <field name="code"/>
<field name="description"/>
</list> </list>

View File

@ -82,6 +82,15 @@ class ReportCycleItem(Model):
dom.append(['department_id','=',department_id]) dom.append(['department_id','=',department_id])
lines=[] lines=[]
cycles={} cycles={}
vasculars={}
for vscl in get_model("clinic.vascular.access").search_read([],['code','description']):
vasculars[vscl['code']]={
'qty': 0,
'description': vscl['description'] or ''
}
ptypes={}
for ptype in get_model("clinic.patient.type").search_read([],['name']):
ptypes[ptype['name'] or ""]=0
for citem in get_model('clinic.cycle.item').search_browse(dom,order="date"): for citem in get_model('clinic.cycle.item').search_browse(dom,order="date"):
cycle=citem.cycle_id cycle=citem.cycle_id
if cycle.id not in cycles.keys(): if cycle.id not in cycles.keys():
@ -91,9 +100,12 @@ class ReportCycleItem(Model):
cycles[cycle.id].append(nurse.name) cycles[cycle.id].append(nurse.name)
for hdcase in citem.hd_cases: for hdcase in citem.hd_cases:
patient=hdcase.patient_id patient=hdcase.patient_id
vascular=patient.vascular_acc
vasculars[vascular.code]['qty']+=1
ptype=patient.type_id ptype=patient.type_id
if ptype_id and ptype_id!=ptype.id: if ptype_id and ptype_id!=ptype.id:
continue continue
ptypes[ptype.name or ""]+=1
doctor=hdcase.doctor_id doctor=hdcase.doctor_id
cycle=hdcase.cycle_id cycle=hdcase.cycle_id
dpt=hdcase.department_id dpt=hdcase.department_id
@ -163,14 +175,31 @@ class ReportCycleItem(Model):
line['no']=no line['no']=no
nlines.append(line) nlines.append(line)
no+=1 no+=1
vscl_lines=[]
for k,v in vasculars.items():
vscl_lines.append({
'description': v['description'],
'qty': v['qty'],
})
ptype_lines=[]
total_pt=0
for pname,qty in ptypes.items():
ptype_lines.append({
'name': pname,
'qty': qty,
})
total_pt+=qty
data={ data={
'company_name': company_name or "", 'company_name': company_name or "",
'lines': nlines, 'lines': nlines,
'vscl_lines': vscl_lines,
'ptype_lines': ptype_lines,
'month': month_str, 'month': month_str,
'date_from': date_from, 'date_from': date_from,
'date_to': date_to, 'date_to': date_to,
'total_fee': total_fee, 'total_fee': total_fee,
'total_mdc': total_mdc, 'total_mdc': total_mdc,
'total_pt': total_pt,
} }
return data return data

View File

@ -54,7 +54,6 @@ class ReportHDCaseSummary(Model):
def get_report_data(self,ids,context={}): def get_report_data(self,ids,context={}):
company_id=get_active_company() company_id=get_active_company()
company=get_model("company").browse(company_id) company=get_model("company").browse(company_id)
date=datetime.now().strftime("%Y-%m-%d") date=datetime.now().strftime("%Y-%m-%d")
year=int(date[0:4]) year=int(date[0:4])
crr_month=int(date[5:7]) crr_month=int(date[5:7])
@ -63,9 +62,9 @@ class ReportHDCaseSummary(Model):
date_from=defaults.get('date_from',date) date_from=defaults.get('date_from',date)
date_to=defaults.get('date_to',date) date_to=defaults.get('date_to',date)
branch_id=defaults.get("branch_id",None) branch_id=defaults.get("branch_id",None)
department_id=defaults.get("department_id",None)
if branch_id: if branch_id:
branch_id=branch_id[0] branch_id=branch_id[0]
department_id=defaults.get("department_id",None)
if department_id: if department_id:
department_id=department_id[0] department_id=department_id[0]
time_start='%s-%s-01 00:00:00'%(year,str(crr_month).zfill(2)) time_start='%s-%s-01 00:00:00'%(year,str(crr_month).zfill(2))
@ -110,10 +109,10 @@ class ReportHDCaseSummary(Model):
count=1 count=1
# number of hd case of this month # number of hd case of this month
dom=[] dom=[]
dom.append(["time_start",">=",time_start]) dom.append(["date",">=",date_from])
dom.append(["time_stop","<=",time_stop]) dom.append(["date","<=",date_to])
dom.append(["state","in",["completed","waiting_payment","paid"]]) dom.append(["state","in",["completed","waiting_payment","paid"]])
dom.append(['patient_id.walkin','=','no']) #dom.append(['patient_id.walkin','=','no'])
if branch_id: if branch_id:
dom.append(['branch_id','=',branch_id]) dom.append(['branch_id','=',branch_id])
if department_id: if department_id:
@ -228,8 +227,6 @@ class ReportHDCaseSummary(Model):
'unit': 'คน', 'unit': 'คน',
} }
}) })
dom=[] dom=[]
time_start='%s-%s-01'%(year,str(crr_month).zfill(2)) time_start='%s-%s-01'%(year,str(crr_month).zfill(2))
time_stop='%s-%s-%s'%(year,str(crr_month).zfill(2),crr_total_day) time_stop='%s-%s-%s'%(year,str(crr_month).zfill(2),crr_total_day)
@ -237,8 +234,6 @@ class ReportHDCaseSummary(Model):
dom.append(['type_id','=',ptype['id']]) dom.append(['type_id','=',ptype['id']])
dom.append(['walkin','=',"no"]) dom.append(['walkin','=',"no"])
dom.append(['dispose','=',False]) dom.append(['dispose','=',False])
#if resign_patients:
#dom.append(['id','not in',resign_patients])
if branch_id: if branch_id:
dom.append(['branch_id','=',branch_id]) dom.append(['branch_id','=',branch_id])
if department_id: if department_id:
@ -283,7 +278,6 @@ class ReportHDCaseSummary(Model):
elif branch_id: elif branch_id:
branch=get_model("clinic.branch").browse(branch_id) branch=get_model("clinic.branch").browse(branch_id)
sub_name="(%s)" % branch.name or "" sub_name="(%s)" % branch.name or ""
print('>> ', context.get('defaults'))
data={ data={
'branch_id': branch_id, 'branch_id': branch_id,
'department_id': department_id, 'department_id': department_id,

View File

@ -134,7 +134,7 @@ class ReportLaborCostSummary(Model):
staffs[staff.name][dpt.name]['qty']+=qty staffs[staff.name][dpt.name]['qty']+=qty
if not citems.get(citem.id): if not citems.get(citem.id):
qty=len([hdcase for hdcase in citem.hd_cases]) qty=len([hdcase for hdcase in citem.hd_cases if hdcase.state in ('completed', 'waiting_payment', 'paid')])
citems[citem.id]=qty citems[citem.id]=qty
lines=[] lines=[]
dom=[] dom=[]

View File

@ -3,10 +3,14 @@ from netforce.model import Model, fields
class VascularAccess(Model): class VascularAccess(Model):
_name="clinic.vascular.access" _name="clinic.vascular.access"
_string="Vascular Access" _string="Vascular Access"
_fields={ _fields={
"name": fields.Char("Name",required=True,search=True), "name": fields.Char("Name",required=True,search=True),
"code": fields.Char("Code",required=True,search=True),
"description": fields.Char("Description",search=True),
'note': fields.Text("Note"), 'note': fields.Text("Note"),
} }
_sql_constraints=("clinic_vascular_key_uniq","unique(code)","code should be unique"),
VascularAccess.register() VascularAccess.register()

View File

@ -33,7 +33,7 @@
<td><a href="/ui#name=clinic_staff&active_id={{did}}&mode=form">{{dname}}</a></td> <td><a href="/ui#name=clinic_staff&active_id={{did}}&mode=form">{{dname}}</a></td>
<td><a href="/ui#name=clinic_patient_type&active_id={{tid}}&mode=form">{{tname}}</a></td> <td><a href="/ui#name=clinic_patient_type&active_id={{tid}}&mode=form">{{tname}}</a></td>
<td style="text-align:right">{{fee}}</td> <td style="text-align:right">{{fee}}</td>
<td>{{mdc}}</td> <td style="text-align:right">{{mdc}}</td>
<td><a href="/ui#name=clinic_dialyzer&active_id={{dlz_id}}&mode=form">{{dlz_name}}</a></td> <td><a href="/ui#name=clinic_dialyzer&active_id={{dlz_id}}&mode=form">{{dlz_name}}</a></td>
<td>{{dlz_use}}</td> <td>{{dlz_use}}</td>
<td><a href="/ui#name=clinic_cycle_item&active_id={{ctid}}&mode=form">View</a></td> <td><a href="/ui#name=clinic_cycle_item&active_id={{ctid}}&mode=form">View</a></td>
@ -49,9 +49,47 @@
<th></th> <th></th>
<th></th> <th></th>
<th style="text-align:right">{{currency total_fee zero=""}}</th> <th style="text-align:right">{{currency total_fee zero=""}}</th>
<th></th> <th style="text-align:right">{{currency total_mdc}}</th>
<th></th> <th></th>
<th></th> <th></th>
<th></th> <th></th>
</tfoot> </tfoot>
</table> </table>
<table class="table table-condensed table-striped">
<tr>
<td colspan="5" style="width:50%">
<table class="table ">
<thead>
<th>Vascular Access</th>
<th>Qty</th>
</thead>
<tbody>
{{#each vscl_lines}}
<tr>
<td>{{description}}</td><td>{{qty}}</td>
</tr>
{{/each}}
</tbody>
</table>
</td>
<td colspan="6" style="width:50%">
<table class="table ">
<thead>
<th>Patient Type</th>
<th>Qty</th>
</thead>
<tbody>
{{#each ptype_lines}}
<tr>
<td>{{name}}</td><td>{{qty}}</td>
</tr>
{{/each}}
</tbody>
<tfoot>
<th>รวมผู้ป่วยทั้งหมด</th>
<th>{{total_pt}}</th>
</tfoot>
</table>
</td>
</tr>
</table>

View File

@ -14,7 +14,6 @@
<th>Receipt#</th> <th>Receipt#</th>
<th>Invoice#</th> <th>Invoice#</th>
<th>ชื่อยา</th> <th>ชื่อยา</th>
<th>ค่าฟอก</th>
<th>ค่ายา</th> <th>ค่ายา</th>
<th>Lab</th> <th>Lab</th>
<th>Misc.</th> <th>Misc.</th>
@ -37,7 +36,6 @@
{{view "link" string=inv_number action="cust_invoice" action_options="form_view_xml&cust_invoice_form&mode=form" active_id=inv_id}} {{view "link" string=inv_number action="cust_invoice" action_options="form_view_xml&cust_invoice_form&mode=form" active_id=inv_id}}
</td> </td>
<td>{{mdc_name}}</td> <td>{{mdc_name}}</td>
<td>{{currency fee zero=""}}</td>
<td>{{currency mdc zero=""}}</td> <td>{{currency mdc zero=""}}</td>
<td>{{currency lab zero=""}}</td> <td>{{currency lab zero=""}}</td>
<td>{{currency misc zero=""}}</td> <td>{{currency misc zero=""}}</td>