From e5f2c3751a84cff45923a3d9c99de12305d1c3c3 Mon Sep 17 00:00:00 2001 From: "chayut.s" Date: Tue, 30 Sep 2014 18:17:46 +0700 Subject: [PATCH] Customize fields --- .../layouts/clinic_doctor_form.xml | 1 + netforce_clinic/layouts/clinic_menu.xml | 16 +- .../layouts/clinic_patient_form.xml | 137 +++++++++++------- .../layouts/clinic_patient_list.xml | 3 +- netforce_clinic/models/clinic_doctor.py | 2 +- netforce_clinic/models/clinic_nurse.py | 2 +- netforce_clinic/models/clinic_patient.py | 76 +++++++--- 7 files changed, 147 insertions(+), 90 deletions(-) diff --git a/netforce_clinic/layouts/clinic_doctor_form.xml b/netforce_clinic/layouts/clinic_doctor_form.xml index fedde8b..3a026ba 100644 --- a/netforce_clinic/layouts/clinic_doctor_form.xml +++ b/netforce_clinic/layouts/clinic_doctor_form.xml @@ -14,6 +14,7 @@ + diff --git a/netforce_clinic/layouts/clinic_menu.xml b/netforce_clinic/layouts/clinic_menu.xml index d8ecdf4..37b1db3 100644 --- a/netforce_clinic/layouts/clinic_menu.xml +++ b/netforce_clinic/layouts/clinic_menu.xml @@ -1,15 +1,11 @@ - - - - - - - - - - + + + + + + diff --git a/netforce_clinic/layouts/clinic_patient_form.xml b/netforce_clinic/layouts/clinic_patient_form.xml index b4468be..54a0a2e 100644 --- a/netforce_clinic/layouts/clinic_patient_form.xml +++ b/netforce_clinic/layouts/clinic_patient_form.xml @@ -6,59 +6,90 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/netforce_clinic/layouts/clinic_patient_list.xml b/netforce_clinic/layouts/clinic_patient_list.xml index 0683595..42dd284 100644 --- a/netforce_clinic/layouts/clinic_patient_list.xml +++ b/netforce_clinic/layouts/clinic_patient_list.xml @@ -1,6 +1,7 @@ - + + diff --git a/netforce_clinic/models/clinic_doctor.py b/netforce_clinic/models/clinic_doctor.py index fbd46f7..8206cc1 100644 --- a/netforce_clinic/models/clinic_doctor.py +++ b/netforce_clinic/models/clinic_doctor.py @@ -12,7 +12,7 @@ class Doctor(Model): _multi_company=True _fields={ "number": fields.Char("Number",required=True,search=True), - "name": fields.Char("Name Surname",required=True,search=True), + "name": fields.Char("Name",required=True,search=True), "date": fields.Date("Create Date",required=True,search=True), "birthday": fields.Date("BirthDay",required=True,search=True), "telephone": fields.Char("Telephone",required=True,search=True), diff --git a/netforce_clinic/models/clinic_nurse.py b/netforce_clinic/models/clinic_nurse.py index 4270fc2..40950b7 100644 --- a/netforce_clinic/models/clinic_nurse.py +++ b/netforce_clinic/models/clinic_nurse.py @@ -12,7 +12,7 @@ class Nurse(Model): _multi_company=True _fields={ "number": fields.Char("Number",required=True,search=True), - "name": fields.Char("Name Surname",required=True,search=True), + "name": fields.Char("Name",required=True,search=True), "date": fields.Date("Create Date",required=True,search=True), "birthday": fields.Date("BirthDay",required=True,search=True), "telephone": fields.Char("Telephone",required=True,search=True), diff --git a/netforce_clinic/models/clinic_patient.py b/netforce_clinic/models/clinic_patient.py index aac1d22..1e9b703 100644 --- a/netforce_clinic/models/clinic_patient.py +++ b/netforce_clinic/models/clinic_patient.py @@ -10,38 +10,54 @@ class Patient(Model): _audit_log=True _name_field="name" _multi_company=True + + def _get_age(self,ids,context): + res={} + year_now=int(time.strftime("%Y")) + for obj in self.browse(ids): + age=0 + if obj.birthday: + year_bd=int(obj.birthday[0:4]) + age=year_now-year_bd + res[obj.id]=age + return res # -> {1: 30, 2: 45,.....} + _fields={ - "number": fields.Char("Number",required=True,search=True), - "name": fields.Char("Name Surname",required=True,search=True), - "date": fields.Date("Create Date",required=True,search=True), - "birthday": fields.Date("BirthDay",required=True,search=True), - "telephone": fields.Char("Telephone",required=True,search=True), - "mobile": fields.Char("Mobile",required=True,search=True), + "number": fields.Char("Patient ID",required=True,search=True), + "first_name": fields.Char("First Name",required=True,search=True), + "last_name": fields.Char("Last Name",required=False,search=True), + "date": fields.Date("Create Date",required=False,search=True), + "birthday": fields.Date("BirthDay",required=False,search=True), + "telephone": fields.Char("Telephone",required=False,search=True), + "mobile": fields.Char("Mobile",required=False,search=True), "job": fields.Char("Job"), - "age": fields.Integer("Age"), + "graduation": fields.Selection([("junior_high_school", "Junior High School"),("senior_hish_school","Senior High School"),("vocational_certificate", "Vocational Certificate"),("High_vocational_certificate", "High Vocational Certificate"),("ba", "B.A.(Bachelor of Arts)"),("ma","M.A.(Master of Arts)"),("phd","Ph.D.(Doctor of Philosophy)")],"Graduation"), + "age": fields.Integer("Age", function="_get_age"), "weight": fields.Integer("Weight (cm)"), "height": fields.Integer("Height (Kg)"), - "type": fields.Selection([("mg","Medical Govement"),("sc","Social Security"),("nhso","NHSO (30฿)"),("personal","Personal"),("other","Other")],"Type",required=True), - "card_type": fields.Selection([("iden_id","Identity Card"),("passport","Passport")],"ID From",required=True), - 'iden_id' : fields.Char("Identity ID"), + "type": fields.Selection([("mg","Medical Govement"),("sc","Social Security"),("nhso","NHSO (30฿)"),("personal","Personal"),("other","Other")],"Type of treatment",required=False), + "card_type": fields.Selection([("iden_id","Identity Card"),("passport","Passport")],"Card Type",required=True), + 'iden_id' : fields.Char("Card No."), "app_no": fields.Char("Application No."), - "salary": fields.Float("Salary"), + "salary": fields.Selection([("20000","5,001-20,000"),("50000","20,001-50,000"),("100000","50,001-100,000"),("100001","100,000+")], "Salary"), 'exp_id' : fields.Date("Expiry Date"), - "state": fields.Selection([("draft","Draft"),("active","Active"),("deactive","Deactive")],"Status",required=True), + "state": fields.Selection([("draft","Draft"),("active","Active"),("deactive","Deactive")],"Status",required=False), "addresses": fields.One2Many("address","related_id","Addresses"), - "gender": fields.Selection([("male","Male"),("female","Female")],"Gendel",required=True), - "marital_status": fields.Selection([("single","Single"),("marry","Marry"),("divorce","Divorce"),("separated","Saparated"),("widowed","Widowed")],"Marital Status",required=True), + "gender": fields.Selection([("male","Male"),("female","Female")],"Gender",required=False), + "marital_status": fields.Selection([("single","Single"),("marry","Marry"),("divorce","Divorce"),("separated","Saparated"),("widowed","Widowed")],"Marital Status",required=False), "nationality": fields.Char("Nationality",search=True), "race": fields.Char("Race",search=True), - "smoke": fields.Boolean("Smoke ?"), - "first_hemodialysis": fields.Date("First time Hemodialysis",required=True), - "hemodialysis": fields.Char("First Hemodialysis",required=True), - "clinic_after": fields.Selection([("small","Small"),("medium","Medium"),("large","Large")],"Clinic Lastime",required=True), - "clinic_after_name": fields.Char("Clinic after name",required=True), - "first_permanent_vascular_access": fields.Date("First time Permanent Vascular",required=True), - "first_tenckhoff_catheters": fields.Date("First time Tenckhoff Catheters",required=True), - "start_date_clinic": fields.Date("Start Date Clinic",required=True), - "waiting_transplantation": fields.Boolean("Kidney Transplantation Waiting ?"), + "smoke": fields.Selection([("never","Never"),("stopped","Stopped"),("smoked","Smoked")],"Smoking"), + "withdrawal" : fields.Selection([("social_security","Social Security"),("health_insurance","Health Insurance"),("etc","ETC.")],"Right of withdrawal"), + "first_treatment" : fields.Selection([("hd","HD"),("test","Test")], "First treatment"), + "first_hemodialysis": fields.Date("First time Hemodialysis",required=False), + "hemodialysis": fields.Char("First Hemodialysis",required=False), + "clinic_after": fields.Selection([("small","Small"),("medium","Medium"),("large","Large")],"Clinic Lastime",required=False), + "clinic_after_name": fields.Char("Clinic after name",required=False), + "first_permanent_vascular_access": fields.Date("First time Permanent Vascular",required=False), + "first_tenckhoff_catheters": fields.Date("First time Tenckhoff Catheters",required=False), + "start_date_clinic": fields.Date("Start Date Clinic",required=False), + "waiting_transplantation": fields.Selection([("yes","Yes"),("no","No")],"Kidney Transplantation Waiting ?"), "who_transplantation": fields.Char("Who is Transplantation?"), "reason_of_chronic_renal_failure": fields.Char("Reason chronic renal failure ?"), "ac_mi": fields.Boolean("Acute MI"), @@ -72,6 +88,19 @@ class Patient(Model): } def _get_number(self,context={}): + seq_name="clinic_patient" + seq_id=get_model("sequence").find_sequence(name=seq_name) + if not seq_id: + raise Exception("Sequence not found: '%s'"%seq_name) + while 1: + num=get_model("sequence").get_next_number(seq_id) + if not num: + return None + get_model("sequence").increment_number(seq_id) + return num + + return + #XXXX while 1: num=get_model("sequence").get_number("clinic_patient") if not num: @@ -91,7 +120,6 @@ class Patient(Model): _order="date desc,number desc" - def void(self,ids,context={}): obj=self.browse(ids)[0] obj.write({"state":"voided"})