report claim/no claim
parent
5ccbb9ab60
commit
d35fa2e11d
|
@ -1,5 +1,5 @@
|
||||||
<action>
|
<action>
|
||||||
<field name="string">HD Case Report Summary</field>
|
<field name="string">Report Claim/No Claim</field>
|
||||||
<field name="view_cls">report</field>
|
<field name="view_cls">report</field>
|
||||||
<field name="model">clinic.report.account.hd.case.summary</field>
|
<field name="model">clinic.report.account.hd.case.summary</field>
|
||||||
<field name="report_template">report_account_hd_case_summary</field>
|
<field name="report_template">report_account_hd_case_summary</field>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<item string="HD Cases Matching" action="clinic_matching_hdcase_acc"/>
|
<item string="HD Cases Matching" action="clinic_matching_hdcase_acc"/>
|
||||||
<divider/>
|
<divider/>
|
||||||
<header string="REPORTS"/>
|
<header string="REPORTS"/>
|
||||||
<item string="HD Case Summary" action="clinic_report_account_hd_case_summary"/>
|
<item string="Report Claim/No Claim" action="clinic_report_account_hd_case_summary"/>
|
||||||
<item string="Labor Cost Summary" action="clinic_report_labor_cost_summary"/>
|
<item string="Labor Cost Summary" action="clinic_report_labor_cost_summary"/>
|
||||||
<item string="Labor Cost Detail" action="clinic_report_labor_cost_detail"/>
|
<item string="Labor Cost Detail" action="clinic_report_labor_cost_detail"/>
|
||||||
<item string="Labor Cost Sub Detail" action="clinic_report_labor_cost_sub_detail"/>
|
<item string="Labor Cost Sub Detail" action="clinic_report_labor_cost_sub_detail"/>
|
||||||
|
|
|
@ -92,6 +92,8 @@ class HDCase(Model):
|
||||||
dlz_name=','.join([dlz for dlz in dlz_name])
|
dlz_name=','.join([dlz for dlz in dlz_name])
|
||||||
names=[]
|
names=[]
|
||||||
fee=0
|
fee=0
|
||||||
|
lab=0
|
||||||
|
misc=0
|
||||||
#sign=1
|
#sign=1
|
||||||
#if obj.state=='waiting_payment':
|
#if obj.state=='waiting_payment':
|
||||||
#sign=-1
|
#sign=-1
|
||||||
|
@ -112,9 +114,15 @@ class HDCase(Model):
|
||||||
names.append(name)
|
names.append(name)
|
||||||
elif categ.code=='FEE':
|
elif categ.code=='FEE':
|
||||||
fee+=amt*sign
|
fee+=amt*sign
|
||||||
|
elif categ.code=="LAB":
|
||||||
|
lab+=amt
|
||||||
|
else:
|
||||||
|
misc+=amt
|
||||||
res[obj.id]={
|
res[obj.id]={
|
||||||
'epo': ','.join([n for n in names]),
|
'epo': ','.join([n for n in names]),
|
||||||
'fee': fee,
|
'fee': fee,
|
||||||
|
'lab': lab,
|
||||||
|
'misc': misc,
|
||||||
'dlz_id': dlz_id,
|
'dlz_id': dlz_id,
|
||||||
'dlz_name': dlz_name,
|
'dlz_name': dlz_name,
|
||||||
'dlz_use': dlz_use,
|
'dlz_use': dlz_use,
|
||||||
|
@ -127,6 +135,8 @@ class HDCase(Model):
|
||||||
"number": fields.Char("Number",required=True,search=True),
|
"number": fields.Char("Number",required=True,search=True),
|
||||||
"epo": fields.Char("EPO",function="_get_expense",function_multi=True),
|
"epo": fields.Char("EPO",function="_get_expense",function_multi=True),
|
||||||
"fee": fields.Float("Fee",function="_get_expense",function_multi=True),
|
"fee": fields.Float("Fee",function="_get_expense",function_multi=True),
|
||||||
|
"lab": fields.Float("Fee",function="_get_expense",function_multi=True),
|
||||||
|
"misc": fields.Float("Fee",function="_get_expense",function_multi=True),
|
||||||
"dlz_name": fields.Float("DZ",function="_get_expense",function_multi=True),
|
"dlz_name": fields.Float("DZ",function="_get_expense",function_multi=True),
|
||||||
"dlz_use": fields.Float("DZ Use",function="_get_expense",function_multi=True),
|
"dlz_use": fields.Float("DZ Use",function="_get_expense",function_multi=True),
|
||||||
"dlz_max": fields.Float("DZ Max",function="_get_expense",function_multi=True),
|
"dlz_max": fields.Float("DZ Max",function="_get_expense",function_multi=True),
|
||||||
|
|
|
@ -17,7 +17,7 @@ class ReportAccountHDCaseSummary(Model):
|
||||||
'branch_id': fields.Many2One("clinic.branch","Branch"),
|
'branch_id': fields.Many2One("clinic.branch","Branch"),
|
||||||
'department_id': fields.Many2One("clinic.department","Departments"),
|
'department_id': fields.Many2One("clinic.department","Departments"),
|
||||||
'ptype_id': fields.Many2One("clinic.patient.type","Patient Type"),
|
'ptype_id': fields.Many2One("clinic.patient.type","Patient Type"),
|
||||||
'reimbursable': fields.Selection([['yes','Yes'],['no','No']],'Reimbursable'),
|
'reimbursable': fields.Selection([['yes','Yes'],['no','No']],'Claim'),
|
||||||
}
|
}
|
||||||
|
|
||||||
def default_get(self,field_names=None,context={},**kw):
|
def default_get(self,field_names=None,context={},**kw):
|
||||||
|
@ -27,6 +27,10 @@ class ReportAccountHDCaseSummary(Model):
|
||||||
weekday, total_day=monthrange(int(year), int(month))
|
weekday, total_day=monthrange(int(year), int(month))
|
||||||
date_from=defaults.get('date_from','%s-%s-01'%(year,month))
|
date_from=defaults.get('date_from','%s-%s-01'%(year,month))
|
||||||
date_to=defaults.get('date_to',"%s-%s-%s"%(year,month,total_day))
|
date_to=defaults.get('date_to',"%s-%s-%s"%(year,month,total_day))
|
||||||
|
#XXX
|
||||||
|
date_from=defaults.get('date',date)
|
||||||
|
date_to=defaults.get('date',date)
|
||||||
|
|
||||||
branch_id=defaults.get('branch_id',None)
|
branch_id=defaults.get('branch_id',None)
|
||||||
print('defaults ', defaults)
|
print('defaults ', defaults)
|
||||||
if branch_id:
|
if branch_id:
|
||||||
|
@ -40,6 +44,7 @@ class ReportAccountHDCaseSummary(Model):
|
||||||
'date_to': date_to,
|
'date_to': date_to,
|
||||||
'branch_id': branch_id,
|
'branch_id': branch_id,
|
||||||
'department_id': department_id,
|
'department_id': department_id,
|
||||||
|
'reimbursable': 'yes',
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
@ -81,6 +86,7 @@ class ReportAccountHDCaseSummary(Model):
|
||||||
dom.append(['state','in',['completed','waiting_payment','paid']])
|
dom.append(['state','in',['completed','waiting_payment','paid']])
|
||||||
print('dom ', dom)
|
print('dom ', dom)
|
||||||
lines=[]
|
lines=[]
|
||||||
|
cycles={}
|
||||||
for hdcase in get_model("clinic.hd.case").search_browse(dom):
|
for hdcase in get_model("clinic.hd.case").search_browse(dom):
|
||||||
items={}
|
items={}
|
||||||
mdc_name=(hdcase.epo or "").split("-")
|
mdc_name=(hdcase.epo or "").split("-")
|
||||||
|
@ -99,28 +105,43 @@ class ReportAccountHDCaseSummary(Model):
|
||||||
for pm in hdcase.payments:
|
for pm in hdcase.payments:
|
||||||
pm_number+=pm.number or ""
|
pm_number+=pm.number or ""
|
||||||
inv_number=""
|
inv_number=""
|
||||||
|
inv_ref=""
|
||||||
for inv in hdcase.invoices:
|
for inv in hdcase.invoices:
|
||||||
inv_number+=inv.number or ""
|
inv_number+=inv.number or ""
|
||||||
|
inv_ref+=inv.ref or ""
|
||||||
patient=hdcase.patient_id
|
patient=hdcase.patient_id
|
||||||
ptype=hdcase.patient_type_id
|
ptype=hdcase.patient_type_id
|
||||||
cycle=hdcase.cycle_id
|
cycle=hdcase.cycle_id
|
||||||
cycle_item=hdcase.cycle_item_id
|
cycle_item=hdcase.cycle_item_id
|
||||||
|
if cycle.id not in cycles.keys():
|
||||||
|
cycles[cycle.id]=[]
|
||||||
|
for line in cycle_item.lines:
|
||||||
|
nurse=line.nurse_id
|
||||||
|
cycles[cycle.id].append(nurse.name)
|
||||||
vals={
|
vals={
|
||||||
'hdcase_id': hdcase.id,
|
'hdcase_id': hdcase.id,
|
||||||
'number': hdcase.number or "",
|
'number': hdcase.number or "",
|
||||||
'date': hdcase.date,
|
'date': hdcase.date,
|
||||||
'hct': hdcase.hct or 0,
|
'hct': hdcase.hct or 0,
|
||||||
|
'epo_name': hdcase.epo or 0,
|
||||||
'ptype': ptype.name or "",
|
'ptype': ptype.name or "",
|
||||||
'ptype_color': ptype.color or "default",
|
'ptype_color': ptype.color or "default",
|
||||||
'dname': hdcase.doctor_id.name or "",
|
'dname': hdcase.doctor_id.name or "",
|
||||||
'cycle': cycle.name or "",
|
'cycle': cycle.name or "",
|
||||||
|
'cid': cycle.id,
|
||||||
'pname': patient.name,
|
'pname': patient.name,
|
||||||
|
'hn': patient.hn_no,
|
||||||
|
'idcard': patient.card_no or "",
|
||||||
'cseq': cycle.sequence or 0,
|
'cseq': cycle.sequence or 0,
|
||||||
'cycle_item_id': cycle_item.id,
|
'cycle_item_id': cycle_item.id,
|
||||||
'pm_number': pm_number,
|
'pm_number': pm_number and pm_number or "-",
|
||||||
'inv_number': inv_number,
|
'inv_number': inv_number and inv_number or "-",
|
||||||
'mdc_name': mdc_name,
|
'mdc_name': mdc_name,
|
||||||
|
'dlz_name': hdcase.dlz_name,
|
||||||
|
'dlz_id': hdcase.dlz_id.id,
|
||||||
|
'lab': hdcase.lab,
|
||||||
|
'misc': hdcase.misc,
|
||||||
|
'inv_ref': inv_ref and inv_ref or "-",
|
||||||
}
|
}
|
||||||
for code, item in items.items():
|
for code, item in items.items():
|
||||||
vals.update({
|
vals.update({
|
||||||
|
@ -135,9 +156,13 @@ class ReportAccountHDCaseSummary(Model):
|
||||||
total_fee=0
|
total_fee=0
|
||||||
total_srv=0
|
total_srv=0
|
||||||
total_epo=0
|
total_epo=0
|
||||||
|
total_lab=0
|
||||||
|
total_misc=0
|
||||||
slines=[]
|
slines=[]
|
||||||
no=1
|
no=1
|
||||||
ptypes={}
|
ptypes={}
|
||||||
|
index=0
|
||||||
|
old=[]
|
||||||
for line in sorted(lines, key=lambda x: (x['date'],x['cseq'])):
|
for line in sorted(lines, key=lambda x: (x['date'],x['cseq'])):
|
||||||
ptype=line['ptype'] or ""
|
ptype=line['ptype'] or ""
|
||||||
if ptype not in ptypes.keys():
|
if ptype not in ptypes.keys():
|
||||||
|
@ -149,7 +174,20 @@ class ReportAccountHDCaseSummary(Model):
|
||||||
total_fee+=line.get('fee',0)
|
total_fee+=line.get('fee',0)
|
||||||
total_srv+=line.get('srv',0)
|
total_srv+=line.get('srv',0)
|
||||||
total_epo+=line.get('epo',0)
|
total_epo+=line.get('epo',0)
|
||||||
|
total_lab+=line.get('lab',0)
|
||||||
|
total_misc+=line.get('misc',0)
|
||||||
line['no']=no
|
line['no']=no
|
||||||
|
|
||||||
|
cid=line['cid']
|
||||||
|
if not cid in old:
|
||||||
|
old.append(cid)
|
||||||
|
index=0
|
||||||
|
else:
|
||||||
|
index+=1
|
||||||
|
cres=cycles[cid]
|
||||||
|
line['nurse']=''
|
||||||
|
if index < len(cres):
|
||||||
|
line['nurse']=cres[index]
|
||||||
slines.append(line)
|
slines.append(line)
|
||||||
no+=1
|
no+=1
|
||||||
types=[]
|
types=[]
|
||||||
|
@ -174,10 +212,19 @@ class ReportAccountHDCaseSummary(Model):
|
||||||
'total_fee': total_fee,
|
'total_fee': total_fee,
|
||||||
'total_srv': total_srv,
|
'total_srv': total_srv,
|
||||||
'total_epo': total_epo,
|
'total_epo': total_epo,
|
||||||
|
'total_lab': total_lab,
|
||||||
|
'total_misc': total_misc,
|
||||||
'total_qty': total_qty,
|
'total_qty': total_qty,
|
||||||
'types': types,
|
'types': types,
|
||||||
'reimbursable': reimbursable,
|
'reimbursable': reimbursable,
|
||||||
}
|
}
|
||||||
|
if not reimbursable:
|
||||||
|
data['title']=''
|
||||||
|
elif reimbursable=='yes':
|
||||||
|
data['title']='Report - Claim'
|
||||||
|
else:
|
||||||
|
data['title']='Report - No Claim'
|
||||||
|
print('>>', data['reimbursable'])
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def onchange_date(self,context={}):
|
def onchange_date(self,context={}):
|
||||||
|
|
Binary file not shown.
|
@ -1,6 +1,6 @@
|
||||||
<center>
|
<center>
|
||||||
<h2>
|
<h2>
|
||||||
HD Case Summary
|
{{title}}
|
||||||
</h2>
|
</h2>
|
||||||
<h3>
|
<h3>
|
||||||
{{company_name}}<br/>
|
{{company_name}}<br/>
|
||||||
|
@ -12,7 +12,11 @@
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead class="scroll-header">
|
<thead class="scroll-header">
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="13" style="text-align:center">
|
{{#ifeq reimbursable "no"}}
|
||||||
|
<th colspan="16" style="text-align:center">
|
||||||
|
{{else}}
|
||||||
|
<th colspan="14" style="text-align:center">
|
||||||
|
{{/ifeq}}
|
||||||
{{#each types}}
|
{{#each types}}
|
||||||
<span class="label label-{{color}}">{{name}}: {{qty}}</span>
|
<span class="label label-{{color}}">{{name}}: {{qty}}</span>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
@ -20,64 +24,120 @@
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
|
||||||
<th>วันที่</th>
|
|
||||||
<th>รอบ</th>
|
|
||||||
<th>HD Case</th>
|
|
||||||
<th>ชื่อ-นามสกุล</th>
|
|
||||||
<th>สิทธิ์</th>
|
|
||||||
<th>ค่าฟอก</th>
|
|
||||||
<th>ค่ายา</th>
|
|
||||||
<th>ค่าฉีดยา</th>
|
|
||||||
<th>HCT</th>
|
|
||||||
<th>ยา</th>
|
|
||||||
{{#ifeq reimbursable "no"}}
|
{{#ifeq reimbursable "no"}}
|
||||||
<th>Rc.</th>
|
<th>Date</th>
|
||||||
<th>Inv.</th>
|
<th>Cycle#</th>
|
||||||
|
<th>HD Case#</th>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>HN</th>
|
||||||
|
<th>ID Card</th>
|
||||||
|
<th>สิทธิ์</th>
|
||||||
|
<th>Receipt#</th>
|
||||||
|
<th>Invoice#</th>
|
||||||
|
<th>EPO</th>
|
||||||
|
<th>ค่าฟอก</th>
|
||||||
|
<th>ค่ายา</th>
|
||||||
|
<th>Lab</th>
|
||||||
|
<th>Misc.</th>
|
||||||
|
<th>Dlz</th>
|
||||||
|
<th>Ref.Inv#</th>
|
||||||
|
{{else}}
|
||||||
|
<th>Date</th>
|
||||||
|
<th>Cycle#</th>
|
||||||
|
<th>HD Case#</th>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>HN</th>
|
||||||
|
<th>ID Card</th>
|
||||||
|
<th>สิทธิ์</th>
|
||||||
|
<th>HCT%</th>
|
||||||
|
<th>EPO</th>
|
||||||
|
<th>ค่าฟอก</th>
|
||||||
|
<th>ค่ายา</th>
|
||||||
|
<th>ค่าบริการฉีดยา</th>
|
||||||
|
<th>แพทย์</th>
|
||||||
|
<th>พยาบาล</th>
|
||||||
{{/ifeq}}
|
{{/ifeq}}
|
||||||
<th>แพทย์</th>
|
|
||||||
<th>พยาบาล</th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{#each lines}}
|
{{#each lines}}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{no}}</td>
|
|
||||||
<td style="width:8%">{{date}}</td>
|
|
||||||
<td style="width:6%">{{cycle}}</td>
|
|
||||||
<td style="width:9%">
|
|
||||||
{{view "link" string=number action="clinic_hd_case" action_options="mode=form" active_id=hdcase_id}}
|
|
||||||
</td>
|
|
||||||
<td style="width:20%">{{pname}}</td>
|
|
||||||
<td>{{ptype}}</td>
|
|
||||||
<td>{{currency fee zero=""}}</td>
|
|
||||||
<td>{{currency epo zero=""}}</td>
|
|
||||||
<td>{{currency srv zero=""}}</td>
|
|
||||||
<td>{{hct}}</td>
|
|
||||||
<td>{{mdc_name}}</td>
|
|
||||||
{{#ifeq ../reimbursable "no"}}
|
{{#ifeq ../reimbursable "no"}}
|
||||||
|
<td style="width:10%">{{date}}</td>
|
||||||
|
<td style="width:6%">{{cycle}}</td>
|
||||||
|
<td style="width:9%">
|
||||||
|
{{view "link" string=number action="clinic_hd_case" action_options="mode=form" active_id=hdcase_id}}
|
||||||
|
</td>
|
||||||
|
<td style="width:20%">{{pname}}</td>
|
||||||
|
<td style="width:20%">{{hn}}</td>
|
||||||
|
<td style="width:20%">{{idcard}}</td>
|
||||||
|
<td>{{ptype}}</td>
|
||||||
<td>{{pm_number}}</td>
|
<td>{{pm_number}}</td>
|
||||||
<td>{{inv_number}}</td>
|
<td>{{inv_number}}</td>
|
||||||
|
<td>{{epo_name}}</td>
|
||||||
|
<td>{{currency fee zero=""}}</td>
|
||||||
|
<td>{{currency epo zero=""}}</td>
|
||||||
|
<td>{{currency lab zero=""}}</td>
|
||||||
|
<td>{{currency misc zero=""}}</td>
|
||||||
|
<td>{{dlz_name}}</td>
|
||||||
|
<td>{{inv_ref}}</td>
|
||||||
|
{{else}}
|
||||||
|
<td style="width:10%">{{date}}</td>
|
||||||
|
<td style="width:6%">{{cycle}}</td>
|
||||||
|
<td style="width:9%">
|
||||||
|
{{view "link" string=number action="clinic_hd_case" action_options="mode=form" active_id=hdcase_id}}
|
||||||
|
</td>
|
||||||
|
<td style="width:20%">{{pname}}</td>
|
||||||
|
<td style="width:20%">{{hn}}</td>
|
||||||
|
<td style="width:20%">{{idcard}}</td>
|
||||||
|
<td>{{ptype}}</td>
|
||||||
|
<td>{{hct}}</td>
|
||||||
|
<td>{{epo_name}}</td>
|
||||||
|
<td>{{currency fee zero=""}}</td>
|
||||||
|
<td>{{currency epo zero=""}}</td>
|
||||||
|
<td>{{currency srv zero=""}}</td>
|
||||||
|
<td>{{dname}}</td>
|
||||||
|
<td>
|
||||||
|
{{view "link" string="View" action="clinic_cycle_item" action_options="mode=form" active_id=cycle_item_id}}
|
||||||
|
</td>
|
||||||
{{/ifeq}}
|
{{/ifeq}}
|
||||||
<td>{{dname}}</td>
|
|
||||||
<td>
|
|
||||||
{{view "link" string="View" action="clinic_cycle_item" action_options="mode=form" active_id=cycle_item_id}}
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
<tfoot>
|
<tfoot>
|
||||||
<th></th>
|
{{#ifeq reimbursable "no"}}
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th>{{currency total_fee zero=""}}</th>
|
<th></th>
|
||||||
<th>{{currency total_epo zero=""}}</th>
|
<th></th>
|
||||||
<th>{{currency total_srv zero=""}}</th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
|
<th>{{currency total_fee zero=""}}</th>
|
||||||
|
<th>{{currency total_epo zero=""}}</th>
|
||||||
|
<th>{{currency total_lab zero=""}}</th>
|
||||||
|
<th>{{currency total_misc zero=""}}</th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
{{else}}
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
<th>{{currency total_fee zero=""}}</th>
|
||||||
|
<th>{{currency total_epo zero=""}}</th>
|
||||||
|
<th>{{currency total_srv zero=""}}</th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
{{/ifeq}}
|
||||||
</tfoot>
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue