diff --git a/netforce_clinic/actions/clinic_sickbed.xml b/netforce_clinic/actions/clinic_sickbed.xml
new file mode 100644
index 0000000..a8a34d0
--- /dev/null
+++ b/netforce_clinic/actions/clinic_sickbed.xml
@@ -0,0 +1,6 @@
+
+    Sickbed
+    multi_view
+    clinic.sickbed
+    clinic_menu
+
diff --git a/netforce_clinic/layouts/clinic_cycle_item_form.xml b/netforce_clinic/layouts/clinic_cycle_item_form.xml
index f9ef707..fc740aa 100644
--- a/netforce_clinic/layouts/clinic_cycle_item_form.xml
+++ b/netforce_clinic/layouts/clinic_cycle_item_form.xml
@@ -11,6 +11,25 @@
     
     
     
+        
+            
+                
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                
+            
+
@@ -22,15 +41,14 @@
         
         
         
-            
-            
+            
+            
         
     
-        
+    
     
     
-        
         
     
 
diff --git a/netforce_clinic/layouts/clinic_hd_case_form.xml b/netforce_clinic/layouts/clinic_hd_case_form.xml
index 570eb81..be9f44f 100644
--- a/netforce_clinic/layouts/clinic_hd_case_form.xml
+++ b/netforce_clinic/layouts/clinic_hd_case_form.xml
@@ -8,14 +8,13 @@
     
     
         
-        
+        
         
+        
         
         
         
-        
-        
-        
+        
         
     
     
@@ -25,22 +24,26 @@
                 
                 
                 
-                
-                
-                
-                
+                
+                
+                
+                
+                
                 
                 
+                
+                
+                
+                
+                
+
                         
-                        
+                        
                         
                         
-                        
-                        
-                        
-                        
+                        
                     
@@ -88,7 +91,7 @@
                 
             
         
-        
+
                     
@@ -98,20 +101,20 @@
                 
-                
             
             
             
         
-        
-            
-        
         
             
         
+        
+            
+            
+        
     
     
-        
+        
         
         
         
diff --git a/netforce_clinic/layouts/clinic_hd_case_list.xml b/netforce_clinic/layouts/clinic_hd_case_list.xml
index 004aba5..af5d7c1 100644
--- a/netforce_clinic/layouts/clinic_hd_case_list.xml
+++ b/netforce_clinic/layouts/clinic_hd_case_list.xml
@@ -1,12 +1,22 @@
     
-    
     
-    
     
-    
-    
+    
     
-    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
     
 
diff --git a/netforce_clinic/layouts/clinic_menu.xml b/netforce_clinic/layouts/clinic_menu.xml
index 3988e8d..919c1de 100644
--- a/netforce_clinic/layouts/clinic_menu.xml
+++ b/netforce_clinic/layouts/clinic_menu.xml
@@ -58,6 +58,7 @@
+
diff --git a/netforce_clinic/layouts/clinic_sickbed_form.xml b/netforce_clinic/layouts/clinic_sickbed_form.xml
new file mode 100644
index 0000000..edabb2c
--- /dev/null
+++ b/netforce_clinic/layouts/clinic_sickbed_form.xml
@@ -0,0 +1,9 @@
+
diff --git a/netforce_clinic/layouts/clinic_sickbed_list.xml b/netforce_clinic/layouts/clinic_sickbed_list.xml
new file mode 100644
index 0000000..6622ea5
--- /dev/null
+++ b/netforce_clinic/layouts/clinic_sickbed_list.xml
@@ -0,0 +1,4 @@
+
+    
+    
+
diff --git a/netforce_clinic/models/__init__.py b/netforce_clinic/models/__init__.py
index b7ab062..95564c1 100644
--- a/netforce_clinic/models/__init__.py
+++ b/netforce_clinic/models/__init__.py
@@ -80,3 +80,4 @@ from . import labor_cost_line
 from . import labor_cost_staff
 from . import labor_cost_entry
 from . import labor_cost_entry_line
+from . import sickbed
diff --git a/netforce_clinic/models/cycle_item.py b/netforce_clinic/models/cycle_item.py
index eec93ef..c0ad9c3 100644
--- a/netforce_clinic/models/cycle_item.py
+++ b/netforce_clinic/models/cycle_item.py
@@ -19,20 +19,20 @@ class CycleItem(Model):
             name="%s-%s"%(cycle_name,obj.date)
             res[obj.id]={
                 'name': name,
+                'sequence':'%s-%s'%(obj.date,cycle.sequence),
             }
         return res
     
     _fields={
-        'name': fields.Char("Name", function="_get_all",function_multi=True),
+        'name': fields.Char("Name",function="_get_all",function_multi=True,store=True),
         'date': fields.Date("Date",search=True),
         'cycle_id': fields.Many2One("clinic.cycle", "Cycle",search=True),
-        'cycle_daily_id': fields.Many2One("clinic.cycle.daily", "Cycle Daily",search=True),
         'lines': fields.One2Many("clinic.cycle.item.line","item_id", "Lines"),
         'visits': fields.One2Many("clinic.visit","cycle_item_id", "Visits"),
         'hd_cases': fields.One2Many("clinic.hd.case","cycle_item_id", "HD Cases"),
         'nurses': fields.One2Many("clinic.cycle.item.nurse",'cycle_item_id','Nurses'),
-        'nurse_id': fields.Many2One("clinic.staff","Nurse",domain=[['type','=','nurse']]), #XXX
-        'sequence': fields.Char("Sequence"), # for sort item
+        'nurse_id': fields.Many2One("clinic.staff","Nurse",domain=[['type','=','nurse']]),
+        'sequence': fields.Char("Sequence",function="_get_all",function_multi=True,store=True),
         'company_id': fields.Many2One("company", "Company"),
         "state": fields.Selection([("draft","Draft"),("validated","Validated")],"Status",required=True),
         'user_id': fields.Many2One("base.user","Validator"),
@@ -72,18 +72,13 @@ class CycleItem(Model):
         
 
     def create(self, vals,**kw):
-        date=vals['date']
-        cycle_id=vals['cycle_id']
-        cycle=get_model("clinic.cycle").browse(cycle_id)
-        vals['sequence']='%s-%s'%(date,cycle.sequence) #date-sequence
-        obj_id=super().create(vals,**kw)
-        return obj_id
+        new_id=super().create(vals,**kw)
+        self.function_store([new_id])
+        return new_id
 
     def write(self,ids,vals,**kw):
-        obj=self.browse(ids)[0]
-        cycle=obj.cycle_id
-        vals['sequence']='%s-%s'%(obj.date,cycle.sequence) #date-sequence
         super().write(ids,vals,**kw)
+        self.function_store(ids)
     
     def validate(self,ids,context={}):
         obj=self.browse(ids)[0]
diff --git a/netforce_clinic/models/hd_case.py b/netforce_clinic/models/hd_case.py
index 729e663..6d08590 100644
--- a/netforce_clinic/models/hd_case.py
+++ b/netforce_clinic/models/hd_case.py
@@ -66,23 +66,30 @@ class HDCase(Model):
         res={}
         for obj in self.browse(ids):
             patient=obj.patient_id
-            res[obj.id]=patient.type_id.name
+            res[obj.id]=patient.type_id.id
         return res
 
     _fields={
         "number": fields.Char("Number",required=True,search=True),
+        'sickbed_id': fields.Many2One("clinic.sickbed",'Sickbed'),
         "ref": fields.Char("Ref",search=True),
         "time_start": fields.DateTime("Start Time",required=True,search=True),
         "time_stop": fields.DateTime("Finish Time",required=True,search=True),
         "date": fields.Date("Date",required=True,search=True),
         "patient_id": fields.Many2One("clinic.patient","Patient",required=True,search=True),
-        "patient_type": fields.Char("Service Type",function="_get_patient_type"),
-        "vascular_acc": fields.Many2One("clinic.vascular.access","Vascular Ac."),
+        "patient_type_id": fields.Many2One("clinic.patient.type", "Type",function="_get_patient_type"),
         "nurse_id": fields.Many2One("clinic.staff","Approve By", domain=[['type','=','nurse']]),
         "department_id": fields.Many2One("clinic.department", "Department",search=True),
-        "wt_kg": fields.Float("Wt.kg."),
-        "bp": fields.Integer("BP"),
-        "mm_hg": fields.Integer("mmHG"),
+        "wt_start": fields.Float("Wt Start(kg)"),
+        "wt_stop": fields.Float("Wt Stop(kg)"),
+        "bp_start": fields.Char("BP Start"),
+        "bp_stop": fields.Char("BP Stop"),
+        "membrane_type": fields.Selection([("unsub","Unsub cellul"),("sub","Sub cellul"),("synthetic","Synthetic")],"Member Type"),
+        "hd_acc": fields.Selection([("o","O"),("i","I")],"HD Acc"),
+        "hd_mode": fields.Selection([("chronic","Chronic"),("acute","Acute")],"HD Moode"),
+        "vascular_acc": fields.Many2One("clinic.vascular.access","Vascular Ac."),
+        "bid_flow_rate": fields.Integer("Bid Flow Rate (ml/min)"),
+        "ultrafittration": fields.Float("Ultrafittration Kg."),
         "hct": fields.Integer("Hct",required=True),
         "hct_msg" : fields.Char(""),
         "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),
@@ -96,7 +103,7 @@ class HDCase(Model):
         "payment_lines": fields.One2Many("clinic.payment","hd_case_id","Payment Lines"),
         "expenes": fields.One2Many("clinic.hd.case.expense","hd_case_id","Expenses"),
         'visit_id': fields.Many2One("clinic.visit", "Visit"),
-        'duration': fields.Integer("Duration(Hours)",function="_get_duration"),
+        'duration': fields.Integer("Duration (Hours)",function="_get_duration"),
         "total": fields.Float("Total",function="_get_total",readonly=True,function_multi=True),
         "fee_amount": fields.Float("Fee",function="_get_total",readonly=True,function_multi=True),
         "mdc_amount": fields.Float("Medicine",function="_get_total",readonly=True,function_multi=True),
@@ -107,7 +114,7 @@ class HDCase(Model):
         'note': fields.Text("Note"),
         'complication': fields.Text("Complication"),
         "cycle_id": fields.Many2One("clinic.cycle","Cycle"),
-        'cycle_item_id': fields.Many2One("clinic.cycle.item","Cycle Item"), # on_delete="cascade" -> will rm visit from cycle item
+        'cycle_item_id': fields.Many2One("clinic.cycle.item","Cycle Item (Team)"), # on_delete="cascade" -> will rm visit from cycle item
         'pay_amount': fields.Float("Amount",function="_get_pay_amount"),
         'pay_date': fields.Date("Pay Date"),
         'pay_account_id': fields.Many2One("account.account","Account"),
@@ -143,9 +150,14 @@ class HDCase(Model):
         "time_stop": lambda *a: time.strftime("%Y-%m-%d %H:%M:%S"),
         "number": _get_number,
         "company_id": lambda *a: get_active_company(),
-        'wt_kg': 0.0,
-        'bp': 0,
-        'mm_hg': 0,
+        'wt_start': 0.0,
+        'wt_stop': 0.0,
+        'bp_start': '0/0',
+        'bp_stop': '0/0',
+        "bid_flow_rate": 0.0,
+        "ultrafittration": 0.0,
+        'hd_acc': 'o',
+        'hd_mode': 'chronic',
         'hct': 0,
         'hct_msg': "สามารถเบิกค่ายาสูงสุดไม่เกิน 1,125บาท ต่อ สัปดาห์",
         'fee_paid': False,
@@ -174,11 +186,7 @@ class HDCase(Model):
         line["description"]=dialyzer.description or dialyzer.product_id.name or ""
         line["use_time"]=use_time
         line["max_use_time"]=dialyzer.max_use_time
-        line["member_type"]=dialyzer.member_type
         line["dialyzer_type"]=dialyzer.dialyzer_type
-        line["bid_flow_rate"]=dialyzer.bid_flow_rate
-        line["ultrafittration"]=dialyzer.ultrafittration
-        line["state"]=dialyzer.state
         data['dlz_id']=dialyzer.id
         return data
     
@@ -206,11 +214,11 @@ class HDCase(Model):
             partner=patient.type_id.contact_id
             data['department_id']=department.id
             data['cycle_id']=cycle.id
+            data['patient_type_id']=patient.type_id.id
             if partner:
                 data['fee_partner_id']=partner.id
             else:
                 data['fee_partner_id']=None
-            data['patient_type']=patient.type_id.name or ""
         data['dialyzers']=[]
         doctor=patient.doctor_id
         data['staffs']=[] # XXX
@@ -827,11 +835,7 @@ class HDCase(Model):
             'description': dialyzer.description or product_name,
             'use_time': 1,
             'max_use_time': dialyzer.max_use_time,
-            'member_type': dialyzer.member_type,
             'dialyzer_type': dialyzer.dialyzer_type,
-            'bid_flow_rate': dialyzer.bid_flow_rate,
-            'ultrafittration': dialyzer.ultrafittration,
-            'state': dialyzer.state,
         }))
         obj.write(vals)
         if context.get('called'):
@@ -887,7 +891,7 @@ class HDCase(Model):
                 }))
         # fee
         st=get_model("clinic.setting").browse(1)
-        if not st.auto_gen:
+        if st.auto_gen:
             return
 
         if not vals.get('lines'):
@@ -917,15 +921,16 @@ class HDCase(Model):
             raise Exception("Not found contact %s at menu: Patiens -> Type"%patient.type_id.name)
         return vals
     
-    def get_invoice_policy(self,vals,patient_id=None):
+    def get_invoice_policy(self,vals={},patient_id=None):
+        print('vals ', vals)
         if patient_id:
             patient=get_model("clinic.patient").browse(patient_id)
             st=get_model("clinic.setting").browse(1)
             for pl in st.invoice_policies:
                 policy=pl.invoice_policy
-                patient_type_id=pl.patient_type_id.id
+                patient_type=pl.patient_type_id
                 opt=pl.invoice_option
-                if patient.type_id.id==patient_type_id:
+                if patient.type_id.id==patient_type.id:
                     vals['invoice_policy']=policy
                     vals['invoice_option']=opt
                     break
diff --git a/netforce_clinic/models/hd_case_dialyzer.py b/netforce_clinic/models/hd_case_dialyzer.py
index 2ca5186..b582487 100644
--- a/netforce_clinic/models/hd_case_dialyzer.py
+++ b/netforce_clinic/models/hd_case_dialyzer.py
@@ -4,16 +4,11 @@ class HDCaseDialyzerLine(Model):
     _name="clinic.hd.case.dialyzer"
     _fields={
         "hd_case_id": fields.Many2One("clinic.hd.case","HdCase",on_delete="cascade"),
-        "visit_id": fields.Many2One("clinic.visit","Visit",on_delete="cascade"),
+        "dialyzer_type": fields.Selection([("low","low flux"),("high","high flux"),("dbl","dbl hifulx")],"Dialyzer Type"),
         "dialyzer_id": fields.Many2One("clinic.dialyzer","Dialzer",search=True),
         "description": fields.Char("Description",search=True),
         "use_time":fields.Integer("Use time"),
         "max_use_time":fields.Integer("Max use time"),
-        "member_type": fields.Selection([("unsub","Unsub cellul"),("sub","Sub cellul"),("synthetic","Synthetic")],"Member Type"),
-        "dialyzer_type": fields.Selection([("low","low flux"),("high","high flux"),("dbl","dbl hifulx")],"Member Type"),
-        "bid_flow_rate": fields.Integer("Bid Flow Rate (ml/min)"),
-        "ultrafittration": fields.Float("Ultrafittration Kg."),
-        "state":fields.Selection([("draft","New"),("active","Active"),("drop","Drop")],"Status"),
     }
 
 HDCaseDialyzerLine.register()
diff --git a/netforce_clinic/models/sickbed.py b/netforce_clinic/models/sickbed.py
new file mode 100644
index 0000000..9022b63
--- /dev/null
+++ b/netforce_clinic/models/sickbed.py
@@ -0,0 +1,31 @@
+from netforce.model import Model, fields, get_model
+
+class SickBed(Model):
+    _name="clinic.sickbed"
+    _string="Sickbed"
+
+    _fields={
+        "name": fields.Char("Name",required=True,search=True),
+        "available": fields.Boolean("Available"),
+        'hd_cases': fields.One2Many("clinic.hd.case",'sickbed_id','HDCases'),
+    }
+
+    _defaults={
+        'available': True,
+    }
+
+    def copy(self,ids,context={}):
+        obj=self.browse(ids)[0]
+        new_id=get_model("clinic.sickbed").create({
+            'name': '%s(copy)' % obj.name,
+            })
+        return {
+            'next': {
+                'name': 'clinic_sickbed',
+                'mode': 'form',
+                'active_id': new_id,
+            },
+            'flash': 'Copy succesfully',
+        }
+
+SickBed.register()
diff --git a/netforce_clinic/todo.txt b/netforce_clinic/todo.txt
index 7720d8c..0a205a5 100644
--- a/netforce_clinic/todo.txt
+++ b/netforce_clinic/todo.txt
@@ -1,4 +1,20 @@
-==
+=====
+cycle item
+    - list's nurse
+    - list hd case + U
+
+=====
+ - design
+    1. create cycle item
+
+=====
+
+
+==== after midnight, create payment
+
+
+
+====
  if patient not do visit before treatment , how to do?
 ==
 import payment