clinic/netforce_clinic/migrations/check_patient.py

71 lines
2.4 KiB
Python
Raw Permalink Normal View History

2017-12-26 08:00:07 +00:00
from netforce.model import get_model
from netforce import migration
from netforce.access import set_active_user, get_active_user, set_active_company, get_active_company
import collections
class Migration(migration.Migration):
_name="check.patient"
_version="2.12.8"
def migrate(salf):
set_active_company(1)
set_active_user(1)
totals={}
context={
'active_test': False,
}
for pt in get_model('clinic.patient').search_browse([], context=context):
key=(pt.number, pt.card_no, pt.walkin)
#key=(pt.hn_no)
totals.setdefault(key,{
'count': 0,
'pid': pt.id,
'pname': pt.name,
})
totals[key]['count']+=1
for k in sorted(totals.keys()):
hn_no, card_no, walkin = k
pt=totals[k]
if pt['count'] > 1:
#hn_no, card_no, walkin = k
print(k, pt)
return
user_id=get_active_user()
company_id=get_active_company()
count=0
lines_hn=[]
lines_pid=[]
lines_h=[]
lines_p=[]
print('start check patients.')
for pat in get_model('clinic.patient').search_browse([]):
lines_hn.append(pat.hn_no)
lines_pid.append(pat.card_no)
count+=1
print('count : %d'%(count))
total_hn = [item for item, count in collections.Counter(lines_hn).items() if count > 1]
total_pid = [item for item, count in collections.Counter(lines_pid).items() if count > 1]
count=0
for total in total_hn:
for line in get_model('clinic.patient').search_browse(['hn_no','=',total]):
data = '%d : %s'%(line.id,line.hn_no)
lines_h.append(data)
count+=1
print('#%d : id=%d, name=%s %s, hn_no=%s'%(count,line.id,line.first_name,line.last_name,line.hn_no))
print("")
print("*"*100)
print("")
count=0
for total in total_pid:
for line in get_model('clinic.patient').search_browse(['card_no','=',total]):
data = '%d : %s'%(line.id,line.card_no)
lines_p.append(data)
count+=1
print('#%d : id=%d, name=%s %s, pid=%s'%(count,line.id,line.first_name,line.last_name,line.card_no))
print('check patients : Done!')
return True
Migration.register()