hn & hct
							parent
							
								
									da14324956
								
							
						
					
					
						commit
						4c783eccd8
					
				|  | @ -19,6 +19,7 @@ | ||||||
|         <field name="req_fee" span="2" invisible="1"/> |         <field name="req_fee" span="2" invisible="1"/> | ||||||
|         <!-- enable show_company=1 --> |         <!-- enable show_company=1 --> | ||||||
|         <field name="company_id" span="2" invisible="1"/> |         <field name="company_id" span="2" invisible="1"/> | ||||||
|  |         <field name="hct_include" span="2" invisible="1"/> | ||||||
|     </group> |     </group> | ||||||
|     <tabs> |     <tabs> | ||||||
|         <tab string="General"> |         <tab string="General"> | ||||||
|  | @ -32,8 +33,8 @@ | ||||||
|                 <newline/> |                 <newline/> | ||||||
|                 <field name="wt_start" span="2" attrs='{"required":[["state","=","waiting_treatment"]]}'/> |                 <field name="wt_start" span="2" attrs='{"required":[["state","=","waiting_treatment"]]}'/> | ||||||
|                 <field name="wt_stop" span="2"/> |                 <field name="wt_stop" span="2"/> | ||||||
|                 <field name="hct" span="2" onchange="onchange_hct"/> |                 <field name="hct" span="2" onchange="onchange_hct" attrs='{"invisible":[["hct_include","=",false]]}'/> | ||||||
|                 <field name="hct_msg" span="4" readonly="1"/> |                 <field name="hct_msg" span="4" readonly="1" attrs='{"invisible":[["hct_include","=",false]]}'/> | ||||||
|                 <newline/> |                 <newline/> | ||||||
|                 <field name="bp_start" span="2"/> |                 <field name="bp_start" span="2"/> | ||||||
|                 <field name="bp_stop" span="2"/> |                 <field name="bp_stop" span="2"/> | ||||||
|  |  | ||||||
|  | @ -4,14 +4,14 @@ | ||||||
|         <button string="Options" dropdown="1"> |         <button string="Options" dropdown="1"> | ||||||
|             <item string="Generate Visit" action="clinic_gen_visit"/> |             <item string="Generate Visit" action="clinic_gen_visit"/> | ||||||
|             <item string="New Dialyzer" method="new_dialyzer"/> |             <item string="New Dialyzer" method="new_dialyzer"/> | ||||||
|             <item string="Simple Address" method="simple_address"/> |             <!--<item string="Simple Address" method="simple_address"/>--> | ||||||
|         </button> |         </button> | ||||||
|     </head> |     </head> | ||||||
|     <field name="number"/> |     <field name="number"/> | ||||||
|     <field name="trt_no"/> |     <field name="trt_no"/> | ||||||
|     <field name="type_id"/> |     <field name="type_id"/> | ||||||
|     <field name="name"/> |     <field name="name"/> | ||||||
|     <field name="hn"/> |     <!--<field name="hn"/>--> | ||||||
|     <field name="reg_date"/> |     <field name="reg_date"/> | ||||||
|     <field name="partner_id"/> |     <field name="partner_id"/> | ||||||
|     <field name="categ_id"/> |     <field name="categ_id"/> | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ | ||||||
|     </head> |     </head> | ||||||
|     <field name="reg_date"/> |     <field name="reg_date"/> | ||||||
|     <field name="number"/> |     <field name="number"/> | ||||||
|     <field name="hn_no"/> |     <!--<field name="hn_no"/>--> | ||||||
|     <field name="trt_no"/> |     <field name="trt_no"/> | ||||||
|     <field name="name"/> |     <field name="name"/> | ||||||
|     <field name="department_id"/> |     <field name="department_id"/> | ||||||
|  |  | ||||||
|  | @ -4,9 +4,16 @@ | ||||||
|             <item string="New Contact" method="new_contact"/> |             <item string="New Contact" method="new_contact"/> | ||||||
|         </button> |         </button> | ||||||
|     </head> |     </head> | ||||||
|     <field name="name"/> |     <tabs> | ||||||
|     <field name="code"/> |         <tab string="General"> | ||||||
|     <field name="contact_id"/> |             <field name="name"/> | ||||||
|     <field name="default"/> |             <field name="code"/> | ||||||
|     <field name="company_id" invisible="1"/> |             <field name="contact_id"/> | ||||||
|  |             <field name="default"/> | ||||||
|  |             <field name="company_id" invisible="1"/> | ||||||
|  |         </tab> | ||||||
|  |         <tab string="Other"> | ||||||
|  |             <field name="hct_include"/> | ||||||
|  |         </tab> | ||||||
|  |     </tabs> | ||||||
| </form> | </form> | ||||||
|  |  | ||||||
|  | @ -58,6 +58,15 @@ class HDCase(Model): | ||||||
|             res[obj.id]=patient.type_id.id |             res[obj.id]=patient.type_id.id | ||||||
|         return res |         return res | ||||||
|      |      | ||||||
|  |     def _get_hct_include(self,ids,context={}): | ||||||
|  |         res={} | ||||||
|  |         for obj in self.browse(ids): | ||||||
|  |             include=False | ||||||
|  |             if obj.patient_id.type_id.hct_include: | ||||||
|  |                 include=True | ||||||
|  |             res[obj.id]=include | ||||||
|  |         return res | ||||||
|  | 
 | ||||||
|     _fields={ |     _fields={ | ||||||
|         "number": fields.Char("Number",required=True,search=True), |         "number": fields.Char("Number",required=True,search=True), | ||||||
|         'sickbed_id': fields.Many2One("clinic.sickbed",'Sickbed'), |         'sickbed_id': fields.Many2One("clinic.sickbed",'Sickbed'), | ||||||
|  | @ -81,6 +90,7 @@ class HDCase(Model): | ||||||
|         "ultrafittration": fields.Float("Ultrafittration (kg.)"), |         "ultrafittration": fields.Float("Ultrafittration (kg.)"), | ||||||
|         "hct": fields.Integer("Hct",required=True), |         "hct": fields.Integer("Hct",required=True), | ||||||
|         "hct_msg" : fields.Char(""), |         "hct_msg" : fields.Char(""), | ||||||
|  |         'hct_include': fields.Boolean("HCT Include", function="_get_hct_include",store=True), | ||||||
|         "state": fields.Selection([("draft","Draft"),('waiting_treatment','Waiting Treatment'),("in_progress","In Progress"),("completed","Finish Treatment"),('paid','Paid'),("waiting_payment","Waiting Payment"),("discountinued","Discountinued"),("cancelled","Cancelled")],"Status",required=True), |         "state": fields.Selection([("draft","Draft"),('waiting_treatment','Waiting Treatment'),("in_progress","In Progress"),("completed","Finish Treatment"),('paid','Paid'),("waiting_payment","Waiting Payment"),("discountinued","Discountinued"),("cancelled","Cancelled")],"Status",required=True), | ||||||
|         "staffs": fields.One2Many("clinic.hd.case.staff","hd_case_id","Staffs"), |         "staffs": fields.One2Many("clinic.hd.case.staff","hd_case_id","Staffs"), | ||||||
|         "comments": fields.One2Many("message","related_id","Comments"), "company_id": fields.Many2One("company","Company"), |         "comments": fields.One2Many("message","related_id","Comments"), "company_id": fields.Many2One("company","Company"), | ||||||
|  | @ -977,6 +987,7 @@ class HDCase(Model): | ||||||
|             patient=get_model("clinic.patient").browse(patient_id) |             patient=get_model("clinic.patient").browse(patient_id) | ||||||
|             vals['branch_id']=patient.branch_id.id |             vals['branch_id']=patient.branch_id.id | ||||||
|         new_id=super().create(vals,**kw) |         new_id=super().create(vals,**kw) | ||||||
|  |         self.function_store([new_id]) | ||||||
|         return new_id |         return new_id | ||||||
|      |      | ||||||
|     def write(self,ids,vals,**kw): |     def write(self,ids,vals,**kw): | ||||||
|  | @ -1045,6 +1056,7 @@ class HDCase(Model): | ||||||
|                 sb.write({ |                 sb.write({ | ||||||
|                     'state': 'not_available', |                     'state': 'not_available', | ||||||
|                 }) |                 }) | ||||||
|  |         self.function_store(ids) | ||||||
|         super().write(ids,vals,**kw) |         super().write(ids,vals,**kw) | ||||||
| 
 | 
 | ||||||
|     def approve(self,ids,context={}): |     def approve(self,ids,context={}): | ||||||
|  |  | ||||||
|  | @ -3,13 +3,15 @@ import time | ||||||
| from netforce.model import Model, fields, get_model | from netforce.model import Model, fields, get_model | ||||||
| from netforce.access import get_active_company, get_active_user, set_active_user | from netforce.access import get_active_company, get_active_user, set_active_user | ||||||
| 
 | 
 | ||||||
|  | from . import utils | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class Patient(Model): | class Patient(Model): | ||||||
|     _name="clinic.patient" |     _name="clinic.patient" | ||||||
|     _string="Patient" |     _string="Patient" | ||||||
|     _audit_log=True |     _audit_log=True | ||||||
|     _multi_company=True |     _multi_company=True | ||||||
|     _key=['name'] |     _key=['number'] | ||||||
| 
 | 
 | ||||||
|     def _get_age(self,ids,context): |     def _get_age(self,ids,context): | ||||||
|         res={} |         res={} | ||||||
|  | @ -35,15 +37,15 @@ class Patient(Model): | ||||||
|     def _get_hn_no(self,ids,context={}): |     def _get_hn_no(self,ids,context={}): | ||||||
|         res={} |         res={} | ||||||
|         for obj in self.browse(ids): |         for obj in self.browse(ids): | ||||||
|             hn=''.join(x for x in (obj.hn or "") if x.isdigit()) |             hn=''.join(x for x in (obj.number or "") if x.isdigit()) | ||||||
|             res[obj.id]=hn |             res[obj.id]=hn | ||||||
|         return res |         return res | ||||||
| 
 | 
 | ||||||
|     _fields={ |     _fields={ | ||||||
|         'type_id': fields.Many2One("clinic.patient.type","Type",search=True,required=True), |         'type_id': fields.Many2One("clinic.patient.type","Type",search=True,required=True), | ||||||
|         "number": fields.Char("Number",required=True,search=True), |         "number": fields.Char("HN",required=True,search=True), | ||||||
|         "trt_no": fields.Char("TRT. No",search=True), |         "trt_no": fields.Char("TRT. No",search=True), | ||||||
|         "hn_no": fields.Char("HN",function="_get_hn_no"), |         "hn_no": fields.Char("HN Number",function="_get_hn_no"), | ||||||
|         "hn": fields.Char("REF/HN",search=True), |         "hn": fields.Char("REF/HN",search=True), | ||||||
|         "name": fields.Char("Name",required=True,search=True), |         "name": fields.Char("Name",required=True,search=True), | ||||||
|         "reg_date": fields.Date("Register Date",required=False,search=True), |         "reg_date": fields.Date("Register Date",required=False,search=True), | ||||||
|  | @ -109,6 +111,11 @@ class Patient(Model): | ||||||
|                 return None |                 return None | ||||||
|             user_id=get_active_user() |             user_id=get_active_user() | ||||||
|             set_active_user(1) |             set_active_user(1) | ||||||
|  |             # reformat number: month-running num-year thai(2 digit) | ||||||
|  |             monthnow=int(time.strftime("%m")) | ||||||
|  |             yearnow=utils.date2thai(time.strftime("%Y-%m-%d"),"%(By)s") | ||||||
|  |             num="%s-%s-%s"%(monthnow,num,yearnow) | ||||||
|  | 
 | ||||||
|             res=self.search([["number","=",num]]) |             res=self.search([["number","=",num]]) | ||||||
|             set_active_user(user_id) |             set_active_user(user_id) | ||||||
|             if not res: |             if not res: | ||||||
|  | @ -226,7 +233,6 @@ class Patient(Model): | ||||||
|     def name_get(self,ids,context={}): |     def name_get(self,ids,context={}): | ||||||
|         vals=[] |         vals=[] | ||||||
|         for obj in self.browse(ids): |         for obj in self.browse(ids): | ||||||
|             #name="%s [%s]"%(obj.name, obj.hn_no) |  | ||||||
|             name=obj.name or '' |             name=obj.name or '' | ||||||
|             if obj.hn_no: |             if obj.hn_no: | ||||||
|                 name+=" (HN: %s)"%obj.hn_no |                 name+=" (HN: %s)"%obj.hn_no | ||||||
|  | @ -238,7 +244,7 @@ class Patient(Model): | ||||||
|         if domain: |         if domain: | ||||||
|              dom=[dom,domain]  |              dom=[dom,domain]  | ||||||
|         ids1=self.search(dom) |         ids1=self.search(dom) | ||||||
|         dom=[["hn","ilike","%"+name+"%"]] |         dom=[["number","ilike","%"+name+"%"]] | ||||||
|         if domain: |         if domain: | ||||||
|             dom=[dom,domain] |             dom=[dom,domain] | ||||||
|         ids2=self.search(dom) |         ids2=self.search(dom) | ||||||
|  |  | ||||||
|  | @ -11,6 +11,7 @@ class PatientType(Model): | ||||||
|         "code": fields.Char("Code",required=True,search=True), |         "code": fields.Char("Code",required=True,search=True), | ||||||
|         'contact_id': fields.Many2One("partner","Contact",domain=[['type','=','org']],search=True), |         'contact_id': fields.Many2One("partner","Contact",domain=[['type','=','org']],search=True), | ||||||
|         'default': fields.Boolean("Default"), |         'default': fields.Boolean("Default"), | ||||||
|  |         'hct_include': fields.Boolean("HCT Include"), | ||||||
|         'company_id': fields.Many2One("company","Company"), |         'company_id': fields.Many2One("company","Company"), | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue