adm-ntuh-net/ntuh/ck/unf.py
2024-12-12 10:19:16 +08:00

269 lines
6.6 KiB
Python
Executable file

#!/usr/bin/python
# coding=utf-8
from intra import *
import datetime
import time
def unf():
unf1 = unf_sort(-30,-7)
dr1 = unf1['dr']
resident1 = unf1['resident']
division1 = unf1['division']
unf2 = unf_sort(-365,-31)
dr2 = unf2['dr']
resident2 = unf2['resident']
division2 = unf2['division']
length = max(len(dr1),
len(resident1),
len(dr2),
len(resident2))
result=[]
result.append(['主治醫師','科別','份數','住院醫師','份數','主治醫師','科別','份數','住院醫師','份數'])
d1 = 0
r1 = 0
d2 = 0
r2 = 0
for i in range(length):
r = []
if i < len(dr1):
r.append(dr1[i][0])
if vs.has_key(dr1[i][0]):
r.append(vs[dr1[i][0]])
else:
r.append('')
r.append(dr1[i][1])
d1 += dr1[i][1]
else:
r.append('')
r.append('')
r.append('')
if i < len(resident1):
r.append(resident1[i][0])
r.append(resident1[i][1])
r1 += resident1[i][1]
else:
r.append('')
r.append('')
if i < len(dr2):
r.append(dr2[i][0])
if vs.has_key(dr2[i][0]):
r.append(vs[dr2[i][0]])
else:
r.append('')
r.append(dr2[i][1])
d2 += dr2[i][1]
else:
r.append('')
r.append('')
r.append('')
if i < len(resident2):
r.append(resident2[i][0])
r.append(resident2[i][1])
r2 += resident2[i][1]
else:
r.append('')
r.append('')
result.append(r)
# output = open('/home/xfr/mysite/site_media/unf.html','w')
output = open('/SharedDocs/html/media.ntuh.net/unf.html','w')
print >> output, """
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title>外科部病歷未完成</title>
</head>
<body>
"""
print >> output, "<table><tbody align='center'>"
print >> output, "<tr><td colspan='10'>%s</td></tr>" % time.asctime()
print >> output, "<tr><td colspan='5'>%s</td><td colspan='5'>%s</td></tr>" % ('7至30日','超過30日')
for r in result:
print >> output ,"<tr>"
for c in r:
print >> output, "<td>%s</td>" % c
print >> output ,"</tr>"
print >> output, "<tr><td>---</td></tr>"
print >> output, "<tr>"
print >> output, "<td>總計</td><td></td><td>%i</td>" % d1
print >> output, "<td>總計</td><td>%i</td>" % r1
print >> output, "<td>總計</td><td></td><td>%i</td>" % d2
print >> output, "<td>總計</td><td>%i</td>" % r2
print >> output, "</tr>"
print >> output, "</tbody></table>"
print >> output, "<hr/>"
print >> output, "<table><tbody align='center'>"
div1 = dict(division1)
div2 = dict(division2)
for div in div1.keys():
if not div2.has_key(div):
div2[div] = 0
for div in div2.keys():
if not div1.has_key(div):
div1[div] = 0
div3 = {}
for div in div1.keys():
div3[div] = div1[div] + div2[div]
# print div1
# print div2
# print div3
division_sort = sorted(list(div3), key=lambda x: -div3[x])
# print division_sort
print >> output, "<tr><td></td>"
for div in division_sort:
print >> output, "<td>%s</td>" % div
print >> output, "</tr>"
print >> output, "<tr><td>7至30日</td>"
for div in division_sort:
print >> output, "<td>%s</td>" % div1[div]
print >> output, "</tr>"
print >> output, "<tr><td>超過30日</td>"
for div in division_sort:
print >> output, "<td>%s</td>" % div2[div]
print >> output, "</tr>"
print >> output, "<tr><td>合計</td>"
for div in division_sort:
print >> output, "<td>%s</td>" % div3[div]
print >> output, "</tr>"
print >> output, "</tbody></table>"
print >> output, "</body></html>"
output.close()
return result
def unf_month():
day = datetime.date.today().day
EndDate = datetime.date.today() + datetime.timedelta(days=-day)
unf1 = unf_sort(-365,-day)
dr1 = unf1['dr']
resident1 = unf1['resident']
division1 = unf1['division']
length = max(len(dr1),
len(resident1))
result=[]
result.append(['主治醫師','科別','份數','住院醫師','份數'])
d1 = 0
r1 = 0
for i in range(length):
r = []
if i < len(dr1):
r.append(dr1[i][0])
if vs.has_key(dr1[i][0]):
r.append(vs[dr1[i][0]])
else:
r.append('')
r.append(dr1[i][1])
d1 += dr1[i][1]
else:
r.append('')
r.append('')
r.append('')
if i < len(resident1):
r.append(resident1[i][0])
r.append(resident1[i][1])
r1 += resident1[i][1]
else:
r.append('')
r.append('')
result.append(r)
# output = open('/home/xfr/mysite/site_media/unf.html','w')
output = open('/SharedDocs/html/media.ntuh.net/unf_month.html','w')
print >> output, """
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title>上月外科部病歷未完成</title>
</head>
<body>
"""
print >> output, "<table><tbody align='center'>"
print >> output, "<tr><td colspan='5'>%s</td></tr>" % time.asctime()
print >> output, "<tr><td colspan='5'>%s前</td></tr>" % EndDate
for r in result:
print >> output ,"<tr>"
for c in r:
print >> output, "<td>%s</td>" % c
print >> output ,"</tr>"
print >> output, "<tr><td>---</td></tr>"
print >> output, "<tr>"
print >> output, "<td>總計</td><td></td><td>%i</td>" % d1
print >> output, "<td>總計</td><td>%i</td>" % r1
print >> output, "</tr>"
print >> output, "</tbody></table>"
print >> output, "<hr/>"
print >> output, "<table><tbody align='center'>"
div1 = dict(division1)
# print div1
# print div2
# print div3
division_sort = sorted(list(div1), key=lambda x: -div1[x])
# print division_sort
print >> output, "<tr><td></td>"
for div in division_sort:
print >> output, "<td>%s</td>" % div
print >> output, "</tr>"
print >> output, "<tr><td>合計</td>"
for div in division_sort:
print >> output, "<td>%s</td>" % div1[div]
print >> output, "</tr>"
print >> output, "</tbody></table>"
print >> output, "</body></html>"
output.close()
return result
unf()
unf_month()