basic test
This commit is contained in:
160
010/010_b.html
160
010/010_b.html
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>City General Hospital - HIS System V2.0</title>
|
||||
@@ -9,9 +9,9 @@
|
||||
<table width="100%" border="1" bgcolor="#ffcccc" cellpadding="5">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<font color="red"><b>全院广播:</b> 请各科室注意,下午 3 点在行政楼会议室召开医保控费紧急会议。</font>
|
||||
<font color="red"><b>Hospital Broadcast:</b> Attention all departments, an emergency meeting on insurance cost control will be held at 3 PM in the Admin Building conference room.</font>
|
||||
<br>
|
||||
<font size="2">发布时间:2025-12-22 08:30</font>
|
||||
<font size="2">Posted: 2025-12-22 08:30</font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -20,12 +20,12 @@
|
||||
<table width="100%" border="0" bgcolor="#008080" cellpadding="10">
|
||||
<tr>
|
||||
<td width="50%">
|
||||
<font color="white" size="5"><b>市中心医院 - 医生工作站</b></font>
|
||||
<font color="white" size="5"><b>City General Hospital - Doctor Station</b></font>
|
||||
</td>
|
||||
<td width="50%" align="right">
|
||||
<font color="white">
|
||||
当前用户:<b>李医生 (主治医师)</b> | 科室:心内科<br>
|
||||
<a href="#" style="color:yellow">[修改密码]</a> | <a href="#" style="color:white">[注销登录]</a>
|
||||
User: <b>Dr. Li (Attending)</b> | Dept: Cardiology<br>
|
||||
<a href="#" style="color:yellow">[Change Password]</a> | <a href="#" style="color:white">[Logout]</a>
|
||||
</font>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -34,12 +34,12 @@
|
||||
<table width="100%" border="1" cellpadding="5" cellspacing="0" bgcolor="#dddddd">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="#">门诊工作台</a> |
|
||||
<a href="#">住院部管理</a> |
|
||||
<a href="#">手术排期</a> |
|
||||
<a href="#">检验报告查询</a> |
|
||||
<a href="#">药房库存</a> |
|
||||
<a href="#">医嘱管理</a>
|
||||
<a href="#">Outpatient Workbench</a> |
|
||||
<a href="#">Inpatient Management</a> |
|
||||
<a href="#">Surgery Schedule</a> |
|
||||
<a href="#">Lab Reports</a> |
|
||||
<a href="#">Pharmacy Stock</a> |
|
||||
<a href="#">Order Management</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -50,33 +50,33 @@
|
||||
<td width="250" valign="top" bgcolor="#f0f0f0">
|
||||
<br>
|
||||
<table width="100%" border="1" cellpadding="3">
|
||||
<tr><td bgcolor="#008080"><font color="white"><b>待诊患者列表 (12)</b></font></td></tr>
|
||||
<tr><td bgcolor="#008080"><font color="white"><b>Waiting List (12)</b></font></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>01. 张三 (男, 45岁)</b><br>
|
||||
<font size="2">主诉:胸闷气短三天</font><br>
|
||||
<a href="#">[接诊]</a> <a href="#">[过号]</a>
|
||||
<b>01. Zhang San (M, 45y)</b><br>
|
||||
<font size="2">C/C: Chest tightness for 3 days</font><br>
|
||||
<a href="#">[Admit]</a> <a href="#">[Skip]</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>02. 李四 (女, 62岁)</b><br>
|
||||
<font size="2">主诉:高血压复诊</font><br>
|
||||
<a href="#">[接诊]</a> <a href="#">[过号]</a>
|
||||
<b>02. Li Si (F, 62y)</b><br>
|
||||
<font size="2">C/C: Hypertension follow-up</font><br>
|
||||
<a href="#">[Admit]</a> <a href="#">[Skip]</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr bgcolor="#ffffcc">
|
||||
<td>
|
||||
<font color="red"><b>VIP. 王总 (男, 50岁)</b></font><br>
|
||||
<font size="2">备注:院长安排,优先处理</font><br>
|
||||
<a href="#">[优先接诊]</a>
|
||||
<font color="red"><b>VIP. Mr. Wang (M, 50y)</b></font><br>
|
||||
<font size="2">Note: Dean's request, handle with priority</font><br>
|
||||
<a href="#">[Priority Admit]</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>03. 赵六 (男, 28岁)</b><br>
|
||||
<font size="2">主诉:心悸,心率110</font><br>
|
||||
<a href="#">[接诊]</a> <a href="#">[过号]</a>
|
||||
<b>03. Zhao Liu (M, 28y)</b><br>
|
||||
<font size="2">C/C: Palpitations, HR 110</font><br>
|
||||
<a href="#">[Admit]</a> <a href="#">[Skip]</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -85,7 +85,7 @@
|
||||
<table width="100%" border="1" bgcolor="#e0ffff">
|
||||
<tr>
|
||||
<td>
|
||||
<font size="2"><b>[学术推广]</b><br>辉瑞新药介绍会<br>赠送精美礼品一份<br><a href="#">[查看详情]</a></font>
|
||||
<font size="2"><b>[Academic Promo]</b><br>Pfizer New Drug Intro<br>Free gift included<br><a href="#">[View Details]</a></font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -93,7 +93,7 @@
|
||||
<table width="100%" border="1" bgcolor="#ffe4e1">
|
||||
<tr>
|
||||
<td>
|
||||
<font size="2"><b>[后勤通知]</b><br>今日食堂特供:<br>红烧排骨、清蒸鲈鱼</font>
|
||||
<font size="2"><b>[Logistics Notice]</b><br>Today's Special:<br>Braised Pork Ribs, Steamed Bass</font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -103,16 +103,16 @@
|
||||
|
||||
<table width="100%" border="1" cellpadding="5" bgcolor="#ffffff">
|
||||
<tr>
|
||||
<td colspan="4" bgcolor="#cccccc"><b>当前患者:张三 (ID: 2025001)</b></td>
|
||||
<td colspan="4" bgcolor="#cccccc"><b>Current Patient: Zhang San (ID: 2025001)</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="15%"><b>过敏史:</b></td>
|
||||
<td width="35%"><font color="red">青霉素</font></td>
|
||||
<td width="15%"><b>费别:</b></td>
|
||||
<td width="35%">省医保</td>
|
||||
<td width="15%"><b>Allergies:</b></td>
|
||||
<td width="35%"><font color="red">Penicillin</font></td>
|
||||
<td width="15%"><b>Insurance:</b></td>
|
||||
<td width="35%">Provincial Insurance</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>生命体征:</b></td>
|
||||
<td><b>Vitals:</b></td>
|
||||
<td colspan="3">BP: 140/90 mmHg, HR: 88, T: 36.5°C</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -120,62 +120,62 @@
|
||||
|
||||
<form>
|
||||
<table width="100%" border="1" cellpadding="3" cellspacing="0">
|
||||
<tr><td colspan="5" bgcolor="#dddddd"><b>长期医嘱录入</b></td></tr>
|
||||
<tr><td colspan="5" bgcolor="#dddddd"><b>Long-term Order Entry</b></td></tr>
|
||||
<tr>
|
||||
<th>选择</th>
|
||||
<th>药品名称</th>
|
||||
<th>规格</th>
|
||||
<th>用法用量</th>
|
||||
<th>操作</th>
|
||||
<th>Select</th>
|
||||
<th>Drug Name</th>
|
||||
<th>Spec</th>
|
||||
<th>Dosage / Freq</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center"><input type="checkbox"></td>
|
||||
<td>阿司匹林肠溶片</td>
|
||||
<td>100mg*30片</td>
|
||||
<td>Aspirin Enteric-coated Tablets</td>
|
||||
<td>100mg*30 tabs</td>
|
||||
<td>
|
||||
<input type="text" value="100mg" size="5">
|
||||
<select><option>qd (每日一次)</option><option>bid (每日两次)</option></select>
|
||||
口服
|
||||
<select><option>qd (Once Daily)</option><option>bid (Twice Daily)</option></select>
|
||||
PO (Oral)
|
||||
</td>
|
||||
<td><a href="#">停药</a></td>
|
||||
<td><a href="#">Stop</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center"><input type="checkbox"></td>
|
||||
<td>阿托伐他汀钙片</td>
|
||||
<td>20mg*7片</td>
|
||||
<td>Atorvastatin Calcium Tablets</td>
|
||||
<td>20mg*7 tabs</td>
|
||||
<td>
|
||||
<input type="text" value="20mg" size="5">
|
||||
<select><option>qn (每晚一次)</option></select>
|
||||
口服
|
||||
<select><option>qn (Every Night)</option></select>
|
||||
PO (Oral)
|
||||
</td>
|
||||
<td><a href="#">停药</a></td>
|
||||
<td><a href="#">Stop</a></td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="#ffebcd">
|
||||
<td colspan="5" align="center">
|
||||
<font color="#8b4500" size="2">警告:本月科室药占比已超标 5%,请优先开具集采药品。</font>
|
||||
<font color="#8b4500" size="2">Warning: Department drug ratio exceeded 5%, please prioritize volume-based procurement drugs.</font>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center"><input type="checkbox"></td>
|
||||
<td>美托洛尔缓释片</td>
|
||||
<td>47.5mg*7片</td>
|
||||
<td>Metoprolol Succinate</td>
|
||||
<td>47.5mg*7 tabs</td>
|
||||
<td>
|
||||
<input type="text" value="47.5mg" size="5">
|
||||
<select><option>qd (每日一次)</option></select>
|
||||
口服
|
||||
<select><option>qd (Once Daily)</option></select>
|
||||
PO (Oral)
|
||||
</td>
|
||||
<td><a href="#">停药</a></td>
|
||||
<td><a href="#">Stop</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="5" align="right">
|
||||
<input type="button" value="新增药品">
|
||||
<input type="button" value="签署医嘱">
|
||||
<input type="button" value="作废医嘱">
|
||||
<input type="button" value="Add Drug">
|
||||
<input type="button" value="Sign Orders">
|
||||
<input type="button" value="Void Orders">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -183,13 +183,13 @@
|
||||
<br>
|
||||
|
||||
<table width="100%" border="1" cellpadding="3">
|
||||
<tr><td bgcolor="#dddddd"><b>最近检查报告</b></td></tr>
|
||||
<tr><td bgcolor="#dddddd"><b>Recent Lab Reports</b></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<ul>
|
||||
<li>2025-12-20: 心电图 - 窦性心律,ST段轻度压低 <a href="#">[查看图像]</a></li>
|
||||
<li>2025-12-20: 心脏彩超 - 左室舒张功能减低 <a href="#">[查看图像]</a></li>
|
||||
<li>2025-12-19: 血常规 - 正常 <a href="#">[查看数据]</a></li>
|
||||
<li>2025-12-20: ECG - Sinus rhythm, slight ST depression <a href="#">[View Image]</a></li>
|
||||
<li>2025-12-20: Echo - Left ventricular diastolic dysfunction <a href="#">[View Image]</a></li>
|
||||
<li>2025-12-19: CBC - Normal <a href="#">[View Data]</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -197,7 +197,7 @@
|
||||
|
||||
<br>
|
||||
<div align="center" style="border: 1px dashed red; padding: 5px;">
|
||||
<p><b>IT 部门通知:</b><br>今晚 22:00 进行服务器升级,期间可能出现卡顿。</p>
|
||||
<p><b>IT Dept Notice:</b><br>Server upgrade tonight at 22:00, system may be slow.</p>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
@@ -205,29 +205,29 @@
|
||||
<td width="200" valign="top" bgcolor="#f0f0f0">
|
||||
<br>
|
||||
<table width="100%" border="1" cellpadding="3">
|
||||
<tr><td bgcolor="#008080"><font color="white"><b>临床路径</b></font></td></tr>
|
||||
<tr><td><input type="checkbox"> 入院宣教</td></tr>
|
||||
<tr><td><input type="checkbox"> 签署知情同意书</td></tr>
|
||||
<tr><td><input type="checkbox"> 上级医师查房</td></tr>
|
||||
<tr><td><input type="checkbox"> 术前讨论</td></tr>
|
||||
<tr><td bgcolor="#008080"><font color="white"><b>Clinical Pathway</b></font></td></tr>
|
||||
<tr><td><input type="checkbox"> Admission Education</td></tr>
|
||||
<tr><td><input type="checkbox"> Sign Consent Form</td></tr>
|
||||
<tr><td><input type="checkbox"> Physician Ward Round</td></tr>
|
||||
<tr><td><input type="checkbox"> Pre-op Discussion</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
<table width="100%" border="1" cellpadding="3">
|
||||
<tr><td bgcolor="#008080"><font color="white"><b>值班排班</b></font></td></tr>
|
||||
<tr><td>周一:张医生 (白)</td></tr>
|
||||
<tr><td>周一:王医生 (夜)</td></tr>
|
||||
<tr><td>周二:李医生 (白)</td></tr>
|
||||
<tr><td>周二:赵医生 (夜)</td></tr>
|
||||
<tr><td bgcolor="#008080"><font color="white"><b>Shift Roster</b></font></td></tr>
|
||||
<tr><td>Mon: Dr. Zhang (Day)</td></tr>
|
||||
<tr><td>Mon: Dr. Wang (Night)</td></tr>
|
||||
<tr><td>Tue: Dr. Li (Day)</td></tr>
|
||||
<tr><td>Tue: Dr. Zhao (Night)</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
<p><b>常用链接:</b></p>
|
||||
<p><b>Quick Links:</b></p>
|
||||
<ul>
|
||||
<li><a href="#">OA系统</a></li>
|
||||
<li><a href="#">图书馆</a></li>
|
||||
<li><a href="#">医学论坛</a></li>
|
||||
<li><a href="#">订餐平台</a></li>
|
||||
<li><a href="#">OA System</a></li>
|
||||
<li><a href="#">Library</a></li>
|
||||
<li><a href="#">Medical Forum</a></li>
|
||||
<li><a href="#">Food Ordering</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -237,8 +237,8 @@
|
||||
|
||||
<center>
|
||||
<font size="1">
|
||||
技术支持:市卫生信息中心 | 电话:8888-1234<br>
|
||||
版权所有 © 2025 City General Hospital
|
||||
Tech Support: City Health Info Center | Tel: 8888-1234<br>
|
||||
Copyright © 2025 City General Hospital
|
||||
</font>
|
||||
</center>
|
||||
|
||||
|
||||
245
010/10-001.html
Normal file
245
010/10-001.html
Normal file
File diff suppressed because one or more lines are too long
126
010/10-002.html
Normal file
126
010/10-002.html
Normal file
@@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html> <html lang=en><!--
|
||||
--><meta charset=utf-8>
|
||||
<title>City General Hospital - HIS System V2.0</title>
|
||||
<style>:root{--primary:#007bff;--secondary:#6c757d;--success:#28a745;--danger:#dc3545;--warning:#ffc107;--info:#17a2b8;--light:#f8f9fa;--dark:#343a40;--border-color:#dee2e6}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background-color:#f4f6f9;color:#212529;margin:0;font-size:14px;line-height:1.5}a{text-decoration:none;color:var(--primary)}a:hover{text-decoration:underline}table,tbody,tr,td{display:block;width:100%!important;border:none!important;background:transparent!important;padding:0!important}body>table:first-of-type{background:#fff3cd!important;color:#856404;padding:10px 20px!important;border-bottom:1px solid #ffeeba!important}body>table:first-of-type font{color:#856404!important;font-weight:bold}body>table:first-of-type font[size="2"]{font-size:12px;font-weight:normal;margin-left:10px}body>table:nth-of-type(2){background:white!important;padding:10px 20px!important;border-bottom:1px solid var(--border-color)!important;box-shadow:0 1px 3px rgba(0,0,0,0.05)}body>table:nth-of-type(2) tr{display:flex;justify-content:space-between;align-items:center}body>table:nth-of-type(2) td{width:auto!important}body>table:nth-of-type(2) font[size="5"] b{font-size:20px;color:var(--primary)}body>table:nth-of-type(2) td:last-child font{color:#666!important;font-size:13px}body>table:nth-of-type(2) a{color:var(--secondary)!important;margin-left:10px;font-size:12px}body>table:nth-of-type(3){background:#343a40!important;padding:0!important}body>table:nth-of-type(3) td{gap:0;padding:0!important}.nav-item{color:rgba(255,255,255,0.7)!important;padding:12px 20px;border-right:1px solid rgba(255,255,255,0.1);cursor:pointer}.nav-item:hover{background:rgba(255,255,255,0.1);color:white!important;text-decoration:none}.nav-item.active{background:var(--primary)!important;color:white!important;font-weight:bold}.layout-table>tbody>tr>td:first-child table tr:not(:first-child) td:hover{background:#f1f7ff!important}center:last-of-type{margin-top:40px;border-top:1px solid var(--border-color);padding:20px;color:#999;font-size:12px}.patient-row:hover{background-color:#f1f7ff}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:1000;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:0.2s}.modal-box{background:white;padding:20px;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.2);width:450px;transform:translateY(-20px);transition:0.3s}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:bold;color:#333}.form-group input,.form-group select{width:100%;padding:8px;box-sizing:border-box;border:1px solid #ccc;border-radius:4px;font-size:14px}</style>
|
||||
<meta name=referrer content=no-referrer><style>.sf-hidden{display:none!important}</style><link rel=canonical href=http://127.0.0.1:8000/010/10-all.html><meta http-equiv=content-security-policy content="default-src 'none'; font-src 'self' data:; img-src 'self' data:; style-src 'unsafe-inline'; media-src 'self' data:; script-src 'unsafe-inline' data:; object-src 'self' data:; frame-src 'self' data:;"></head>
|
||||
<body bgcolor=#e6e6e6 text=#000000 link=#000080 vlink=#800080 alink=#FF0000>
|
||||
<div id=drug-modal class=modal-overlay>
|
||||
<div class=modal-box>
|
||||
<h3 style="margin-top:0;color:var(--primary);border-bottom:1px solid #eee;padding-bottom:10px">New Order</h3>
|
||||
<div class=form-group>
|
||||
<label>Drug Name</label>
|
||||
<select id=modal-drug-name>
|
||||
<option value selected>-- Select --</option>
|
||||
<option value=Aspirin>Aspirin Enteric-coated Tablets</option>
|
||||
<option value=Atorvastatin>Atorvastatin Calcium Tablets</option>
|
||||
<option value=Metoprolol>Metoprolol Succinate</option>
|
||||
<option value=Cefradine>Cefradine Capsules</option>
|
||||
<option value=Ibuprofen>Ibuprofen Sustained Release</option>
|
||||
<option value=Insulin>Human Insulin Injection</option>
|
||||
<option value=Omeprazole>Omeprazole Capsules</option>
|
||||
<option value=Metformin>Metformin Hydrochloride</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class=form-group>
|
||||
<label>Spec & Package</label>
|
||||
<input type=text id=modal-drug-spec readonly style=background:#f5f5f5;color:#666 value>
|
||||
</div>
|
||||
<div class=form-group>
|
||||
<label>Dosage</label>
|
||||
<div style=display:flex;gap:10px>
|
||||
<input type=text id=modal-drug-dose placeholder="Dose (e.g. 100mg)" value>
|
||||
<select id=modal-drug-freq style=width:140px>
|
||||
<option value=qd selected>qd (once daily)</option>
|
||||
<option value=bid>bid (twice daily)</option>
|
||||
<option value=tid>tid (3 times daily)</option>
|
||||
<option value=qid>qid (4 times daily)</option>
|
||||
<option value=qn>qn (once nightly)</option>
|
||||
<option value=prn>prn (as needed)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class=form-group>
|
||||
<label>Route</label>
|
||||
<select id=modal-drug-route>
|
||||
<option value=PO selected>PO (Oral)</option>
|
||||
<option value=IV>IV (Intravenous)</option>
|
||||
<option value=IH>IH (Hypodermic)</option>
|
||||
<option value=Inhale>Inhale (Inhalation)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="text-align:right;margin-top:20px;padding-top:10px;border-top:1px solid #eee">
|
||||
<button type=button style="padding:8px 15px;margin-right:10px;background:white;border:1px solid #ccc;border-radius:4px;cursor:pointer">Cancel</button>
|
||||
<button type=button style="padding:8px 15px;background:var(--primary);color:white;border:none;border-radius:4px;cursor:pointer">Confirm</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=toast-container></div>
|
||||
<table width=100% border=1 bgcolor=#ffcccc cellpadding=5>
|
||||
<tbody><tr>
|
||||
<td align=center>
|
||||
<font color=red><b>Broadcast:</b> Attention all departments, emergency meeting on insurance cost control at 3 PM in the Admin Building.</font>
|
||||
<br>
|
||||
<font size=2>Posted: 2025-12-22 08:30</font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<table width=100% border=0 bgcolor=#008080 cellpadding=10>
|
||||
<tbody><tr>
|
||||
<td width=50%>
|
||||
<font color=white size=5><b>City General Hospital - Doctor Station</b></font>
|
||||
</td>
|
||||
<td width=50% align=right>
|
||||
<font color=white>
|
||||
User: <b>Dr. Li (Attending)</b> | Dept: Cardiology<br>
|
||||
<a href=javascript:void(0) style=color:yellow>[Change Pwd]</a>
|
||||
<a href=javascript:void(0) style=color:white>[Logout]</a>
|
||||
</font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table width=100% border=1 cellpadding=0 cellspacing=0 bgcolor=#343a40>
|
||||
<tbody><tr>
|
||||
<td style=display:flex;padding:0>
|
||||
<div class=nav-item>Outpatient</div>
|
||||
<div class=nav-item>Inpatient</div>
|
||||
<div class=nav-item>Surgery</div>
|
||||
<div class=nav-item>Lab Results</div>
|
||||
<div class="nav-item active">Pharmacy</div>
|
||||
<div class=nav-item>Order Admin</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<div id=module-clinic class=main-module style=display:none>
|
||||
</div>
|
||||
<div id=module-inpatient class=main-module style=display:none;padding:20px>
|
||||
|
||||
</div>
|
||||
<div id=module-surgery class=main-module style=display:none;padding:20px>
|
||||
|
||||
</div>
|
||||
<div id=module-lab class=main-module style=display:none;padding:20px>
|
||||
|
||||
</div>
|
||||
<div id=module-pharmacy class=main-module style=display:block;padding:20px>
|
||||
<div style="background:white;padding:30px;border-radius:8px;border:1px solid #ddd">
|
||||
<h2 style=color:#28a745>Pharmacy Stock Alert</h2>
|
||||
<table width=100% border=0 cellpadding=8>
|
||||
<tbody><tr style="border-bottom:2px solid #eee"><td>Drug Name<td>Stock<td>Status<td>Action</tr>
|
||||
<tr><td>Aspirin<td>12,000<td style=color:green>Sufficient<td>-</tr>
|
||||
<tr><td>Insulin Inj<td>50<td style=color:red;font-weight:bold>Low Stock<td><a href=javascript:void(0)>Request Restock</a></tr>
|
||||
<tr><td>Cefradine<td>340<td style=color:orange>Normal<td>-</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id=module-admin class=main-module style=display:none;padding:20px>
|
||||
|
||||
</div>
|
||||
<hr class=sf-hidden>
|
||||
<center>
|
||||
<font size=1>
|
||||
Tech Support: Health Info Center | Tel: 8888-1234<br>
|
||||
Copyright © 2025 City General Hospital
|
||||
</font>
|
||||
</center>
|
||||
126
010/10-003.html
Normal file
126
010/10-003.html
Normal file
@@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html> <html lang=en><!--
|
||||
--><meta charset=utf-8>
|
||||
<title>City General Hospital - HIS System V2.0</title>
|
||||
<style>:root{--primary:#007bff;--secondary:#6c757d;--success:#28a745;--danger:#dc3545;--warning:#ffc107;--info:#17a2b8;--light:#f8f9fa;--dark:#343a40;--border-color:#dee2e6}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background-color:#f4f6f9;color:#212529;margin:0;font-size:14px;line-height:1.5}a{text-decoration:none;color:var(--primary)}a:hover{text-decoration:underline}table,tbody,tr,td{display:block;width:100%!important;border:none!important;background:transparent!important;padding:0!important}body>table:first-of-type{background:#fff3cd!important;color:#856404;padding:10px 20px!important;border-bottom:1px solid #ffeeba!important}body>table:first-of-type font{color:#856404!important;font-weight:bold}body>table:first-of-type font[size="2"]{font-size:12px;font-weight:normal;margin-left:10px}body>table:nth-of-type(2){background:white!important;padding:10px 20px!important;border-bottom:1px solid var(--border-color)!important;box-shadow:0 1px 3px rgba(0,0,0,0.05)}body>table:nth-of-type(2) tr{display:flex;justify-content:space-between;align-items:center}body>table:nth-of-type(2) td{width:auto!important}body>table:nth-of-type(2) font[size="5"] b{font-size:20px;color:var(--primary)}body>table:nth-of-type(2) td:last-child font{color:#666!important;font-size:13px}body>table:nth-of-type(2) a{color:var(--secondary)!important;margin-left:10px;font-size:12px}body>table:nth-of-type(3){background:#343a40!important;padding:0!important}body>table:nth-of-type(3) td{gap:0;padding:0!important}.nav-item{color:rgba(255,255,255,0.7)!important;padding:12px 20px;border-right:1px solid rgba(255,255,255,0.1);cursor:pointer}.nav-item:hover{background:rgba(255,255,255,0.1);color:white!important;text-decoration:none}.nav-item.active{background:var(--primary)!important;color:white!important;font-weight:bold}.layout-table>tbody>tr>td:first-child table tr:not(:first-child) td:hover{background:#f1f7ff!important}center:last-of-type{margin-top:40px;border-top:1px solid var(--border-color);padding:20px;color:#999;font-size:12px}.patient-row:hover{background-color:#f1f7ff}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:1000;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:0.2s}.modal-box{background:white;padding:20px;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.2);width:450px;transform:translateY(-20px);transition:0.3s}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:bold;color:#333}.form-group input,.form-group select{width:100%;padding:8px;box-sizing:border-box;border:1px solid #ccc;border-radius:4px;font-size:14px}</style>
|
||||
<meta name=referrer content=no-referrer><style>.sf-hidden{display:none!important}</style><link rel=canonical href=http://127.0.0.1:8000/010/10-all.html><meta http-equiv=content-security-policy content="default-src 'none'; font-src 'self' data:; img-src 'self' data:; style-src 'unsafe-inline'; media-src 'self' data:; script-src 'unsafe-inline' data:; object-src 'self' data:; frame-src 'self' data:;"></head>
|
||||
<body bgcolor=#e6e6e6 text=#000000 link=#000080 vlink=#800080 alink=#FF0000>
|
||||
<div id=drug-modal class=modal-overlay>
|
||||
<div class=modal-box>
|
||||
<h3 style="margin-top:0;color:var(--primary);border-bottom:1px solid #eee;padding-bottom:10px">New Order</h3>
|
||||
<div class=form-group>
|
||||
<label>Drug Name</label>
|
||||
<select id=modal-drug-name>
|
||||
<option value selected>-- Select --</option>
|
||||
<option value=Aspirin>Aspirin Enteric-coated Tablets</option>
|
||||
<option value=Atorvastatin>Atorvastatin Calcium Tablets</option>
|
||||
<option value=Metoprolol>Metoprolol Succinate</option>
|
||||
<option value=Cefradine>Cefradine Capsules</option>
|
||||
<option value=Ibuprofen>Ibuprofen Sustained Release</option>
|
||||
<option value=Insulin>Human Insulin Injection</option>
|
||||
<option value=Omeprazole>Omeprazole Capsules</option>
|
||||
<option value=Metformin>Metformin Hydrochloride</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class=form-group>
|
||||
<label>Spec & Package</label>
|
||||
<input type=text id=modal-drug-spec readonly style=background:#f5f5f5;color:#666 value>
|
||||
</div>
|
||||
<div class=form-group>
|
||||
<label>Dosage</label>
|
||||
<div style=display:flex;gap:10px>
|
||||
<input type=text id=modal-drug-dose placeholder="Dose (e.g. 100mg)" value>
|
||||
<select id=modal-drug-freq style=width:140px>
|
||||
<option value=qd selected>qd (once daily)</option>
|
||||
<option value=bid>bid (twice daily)</option>
|
||||
<option value=tid>tid (3 times daily)</option>
|
||||
<option value=qid>qid (4 times daily)</option>
|
||||
<option value=qn>qn (once nightly)</option>
|
||||
<option value=prn>prn (as needed)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class=form-group>
|
||||
<label>Route</label>
|
||||
<select id=modal-drug-route>
|
||||
<option value=PO selected>PO (Oral)</option>
|
||||
<option value=IV>IV (Intravenous)</option>
|
||||
<option value=IH>IH (Hypodermic)</option>
|
||||
<option value=Inhale>Inhale (Inhalation)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="text-align:right;margin-top:20px;padding-top:10px;border-top:1px solid #eee">
|
||||
<button type=button style="padding:8px 15px;margin-right:10px;background:white;border:1px solid #ccc;border-radius:4px;cursor:pointer">Cancel</button>
|
||||
<button type=button style="padding:8px 15px;background:var(--primary);color:white;border:none;border-radius:4px;cursor:pointer">Confirm</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=toast-container></div>
|
||||
<table width=100% border=1 bgcolor=#ffcccc cellpadding=5>
|
||||
<tbody><tr>
|
||||
<td align=center>
|
||||
<font color=red><b>Broadcast:</b> Attention all departments, emergency meeting on insurance cost control at 3 PM in the Admin Building.</font>
|
||||
<br>
|
||||
<font size=2>Posted: 2025-12-22 08:30</font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<table width=100% border=0 bgcolor=#008080 cellpadding=10>
|
||||
<tbody><tr>
|
||||
<td width=50%>
|
||||
<font color=white size=5><b>City General Hospital - Doctor Station</b></font>
|
||||
</td>
|
||||
<td width=50% align=right>
|
||||
<font color=white>
|
||||
User: <b>Dr. Li (Attending)</b> | Dept: Cardiology<br>
|
||||
<a href=javascript:void(0) style=color:yellow>[Change Pwd]</a>
|
||||
<a href=javascript:void(0) style=color:white>[Logout]</a>
|
||||
</font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table width=100% border=1 cellpadding=0 cellspacing=0 bgcolor=#343a40>
|
||||
<tbody><tr>
|
||||
<td style=display:flex;padding:0>
|
||||
<div class=nav-item>Outpatient</div>
|
||||
<div class=nav-item>Inpatient</div>
|
||||
<div class=nav-item>Surgery</div>
|
||||
<div class=nav-item>Lab Results</div>
|
||||
<div class="nav-item active">Pharmacy</div>
|
||||
<div class=nav-item>Order Admin</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<div id=module-clinic class=main-module style=display:none>
|
||||
</div>
|
||||
<div id=module-inpatient class=main-module style=display:none;padding:20px>
|
||||
|
||||
</div>
|
||||
<div id=module-surgery class=main-module style=display:none;padding:20px>
|
||||
|
||||
</div>
|
||||
<div id=module-lab class=main-module style=display:none;padding:20px>
|
||||
|
||||
</div>
|
||||
<div id=module-pharmacy class=main-module style=display:block;padding:20px>
|
||||
<div style="background:white;padding:30px;border-radius:8px;border:1px solid #ddd">
|
||||
<h2 style=color:#28a745>Pharmacy Stock Alert</h2>
|
||||
<table width=100% border=0 cellpadding=8>
|
||||
<tbody><tr style="border-bottom:2px solid #eee"><td>Drug Name<td>Stock<td>Status<td>Action</tr>
|
||||
<tr><td>Aspirin<td>12,000<td style=color:green>Sufficient<td>-</tr>
|
||||
<tr><td>Insulin Inj<td>50<td style=color:red;font-weight:bold>Low Stock<td><a href=javascript:void(0)>Request Restock</a></tr>
|
||||
<tr><td>Cefradine<td>340<td style=color:orange>Normal<td>-</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id=module-admin class=main-module style=display:none;padding:20px>
|
||||
|
||||
</div>
|
||||
<hr class=sf-hidden>
|
||||
<center>
|
||||
<font size=1>
|
||||
Tech Support: Health Info Center | Tel: 8888-1234<br>
|
||||
Copyright © 2025 City General Hospital
|
||||
</font>
|
||||
</center>
|
||||
245
010/10-004.html
Normal file
245
010/10-004.html
Normal file
File diff suppressed because one or more lines are too long
225
010/10-005.html
Normal file
225
010/10-005.html
Normal file
File diff suppressed because one or more lines are too long
@@ -1,12 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>City General Hospital - HIS System V2.0</title>
|
||||
<style>
|
||||
/* === CSS Variables & Reset === */
|
||||
:root {
|
||||
--primary: #007bff; /* 医疗蓝 */
|
||||
--primary: #007bff; /* Medical Blue */
|
||||
--secondary: #6c757d;
|
||||
--success: #28a745;
|
||||
--danger: #dc3545;
|
||||
@@ -29,17 +29,17 @@
|
||||
a { text-decoration: none; color: var(--primary); }
|
||||
a:hover { text-decoration: underline; }
|
||||
|
||||
/* === 布局重构:强制覆盖 Table 样式 === */
|
||||
/* === Layout Refactor: Override Table Styles === */
|
||||
table, tbody, tr, td { display: block; width: 100% !important; border: none !important; background: transparent !important; padding: 0 !important; }
|
||||
|
||||
/* 顶部广播 - 改为顶部通知条 */
|
||||
/* Top Broadcast - Notification Bar */
|
||||
body > table:first-of-type {
|
||||
background: #fff3cd !important; color: #856404; padding: 10px 20px !important; border-bottom: 1px solid #ffeeba !important;
|
||||
}
|
||||
body > table:first-of-type font { color: #856404 !important; font-weight: bold; }
|
||||
body > table:first-of-type font[size="2"] { font-size: 12px; font-weight: normal; margin-left: 10px; }
|
||||
|
||||
/* Header 区域 */
|
||||
/* Header Area */
|
||||
body > table:nth-of-type(2) { background: white !important; padding: 10px 20px !important; border-bottom: 1px solid var(--border-color) !important; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
|
||||
body > table:nth-of-type(2) tr { display: flex; justify-content: space-between; align-items: center; }
|
||||
body > table:nth-of-type(2) td { width: auto !important; }
|
||||
@@ -47,7 +47,7 @@
|
||||
body > table:nth-of-type(2) td:last-child font { color: #666 !important; font-size: 13px; }
|
||||
body > table:nth-of-type(2) a { color: var(--secondary) !important; margin-left: 10px; font-size: 12px; }
|
||||
|
||||
/* 导航菜单 */
|
||||
/* Nav Menu */
|
||||
body > table:nth-of-type(3) { background: #343a40 !important; padding: 0 !important; }
|
||||
body > table:nth-of-type(3) td { display: flex; gap: 0; padding: 0 !important; }
|
||||
|
||||
@@ -61,75 +61,75 @@
|
||||
.nav-item.active { background: var(--primary) !important; color: white !important; font-weight: bold; }
|
||||
|
||||
|
||||
/* === 主体三栏布局 (Grid) === */
|
||||
/* === 3-Column Grid Layout === */
|
||||
.layout-table > tbody > tr {
|
||||
display: grid; grid-template-columns: 240px 1fr 240px; gap: 20px; padding: 20px; max-width: 1600px; margin: 0 auto; align-items: start;
|
||||
}
|
||||
|
||||
/* 左侧:患者列表 */
|
||||
/* Left: Patient List */
|
||||
.layout-table > tbody > tr > td:first-child {
|
||||
background: white !important; border-radius: 4px; border: 1px solid var(--border-color) !important; overflow: hidden;
|
||||
}
|
||||
|
||||
/* 患者列表标题 */
|
||||
/* List Header */
|
||||
.layout-table > tbody > tr > td:first-child table tr:first-child td {
|
||||
background: #f8f9fa !important; padding: 10px 15px !important; border-bottom: 1px solid var(--border-color) !important;
|
||||
}
|
||||
.layout-table > tbody > tr > td:first-child table tr:first-child font { color: #333 !important; font-weight: bold; }
|
||||
|
||||
/* 患者项 */
|
||||
/* List Item */
|
||||
.layout-table > tbody > tr > td:first-child table tr:not(:first-child) td {
|
||||
padding: 15px !important; border-bottom: 1px solid #eee !important; cursor: pointer; transition: background 0.2s;
|
||||
}
|
||||
.layout-table > tbody > tr > td:first-child table tr:not(:first-child) td:hover { background: #f1f7ff !important; }
|
||||
|
||||
/* VIP 样式处理 */
|
||||
/* VIP Style */
|
||||
.layout-table > tbody > tr > td:first-child table tr[bgcolor="#ffffcc"] td {
|
||||
background: #fffbe6 !important; border-left: 3px solid var(--warning) !important;
|
||||
}
|
||||
|
||||
/* 隐藏左侧栏的广告 (医药代表, 食堂) */
|
||||
/* Hide Ads */
|
||||
.layout-table > tbody > tr > td:first-child table[bgcolor="#e0ffff"],
|
||||
.layout-table > tbody > tr > td:first-child table[bgcolor="#ffe4e1"] { display: none !important; }
|
||||
|
||||
/* 中间:工作区 */
|
||||
/* Center: Workspace */
|
||||
.layout-table > tbody > tr > td:nth-child(2) {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
/* 患者信息卡片 */
|
||||
/* Patient Info Card */
|
||||
.layout-table > tbody > tr > td:nth-child(2) > table:first-child {
|
||||
background: white !important; padding: 20px !important; border-radius: 4px; border: 1px solid var(--border-color) !important; margin-bottom: 20px;
|
||||
display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px;
|
||||
}
|
||||
/* 标题行跨列 */
|
||||
/* Title spans full width */
|
||||
.layout-table > tbody > tr > td:nth-child(2) > table:first-child tr:first-child {
|
||||
grid-column: 1 / -1; background: transparent !important; border-bottom: 1px solid #eee !important; padding-bottom: 10px !important; margin-bottom: 10px; font-size: 16px;
|
||||
}
|
||||
/* 信息行 Grid 化 */
|
||||
/* Info rows grid */
|
||||
.layout-table > tbody > tr > td:nth-child(2) > table:first-child tr:not(:first-child) {
|
||||
display: flex; gap: 10px; align-items: baseline;
|
||||
}
|
||||
|
||||
/* 医嘱表单 */
|
||||
/* Order Form */
|
||||
.layout-table > tbody > tr > td:nth-child(2) form table {
|
||||
background: white !important; border-radius: 4px; border: 1px solid var(--border-color) !important; overflow: hidden;
|
||||
}
|
||||
/* 表头 */
|
||||
/* Form Header */
|
||||
.layout-table > tbody > tr > td:nth-child(2) form table tr:first-child {
|
||||
background: #f8f9fa !important; padding: 10px 15px !important; border-bottom: 1px solid var(--border-color) !important;
|
||||
}
|
||||
.layout-table > tbody > tr > td:nth-child(2) form table tr:nth-child(2) {
|
||||
display: grid; grid-template-columns: 40px 1.5fr 1fr 2fr 80px; background: #fafafa; border-bottom: 1px solid var(--border-color); padding: 10px !important; font-weight: bold; font-size: 12px; color: #666;
|
||||
}
|
||||
/* 药品行 */
|
||||
/* Drug Row */
|
||||
.layout-table > tbody > tr > td:nth-child(2) form table tr:not(:first-child):not(:nth-child(2)):not(:last-child) {
|
||||
display: grid; grid-template-columns: 40px 1.5fr 1fr 2fr 80px; padding: 10px !important; border-bottom: 1px solid #eee; align-items: center;
|
||||
}
|
||||
/* 隐藏干扰行 (库存警告) */
|
||||
/* Hide distraction rows */
|
||||
.layout-table > tbody > tr > td:nth-child(2) form table tr[bgcolor="#ffebcd"] { display: none !important; }
|
||||
|
||||
/* 底部按钮组 - 覆盖旧样式 */
|
||||
/* Footer Buttons */
|
||||
.layout-table > tbody > tr > td:nth-child(2) form table tr:last-child td {
|
||||
padding: 15px !important; display: flex; gap: 10px; justify-content: flex-end; background: #f8f9fa !important;
|
||||
}
|
||||
@@ -143,33 +143,33 @@
|
||||
.toast.show { opacity: 1; }
|
||||
|
||||
|
||||
/* 检查报告 */
|
||||
/* Lab Reports */
|
||||
.layout-table > tbody > tr > td:nth-child(2) > table:last-of-type {
|
||||
background: white !important; margin-top: 20px; border: 1px solid var(--border-color) !important; border-radius: 4px; padding: 15px !important;
|
||||
}
|
||||
|
||||
/* 隐藏系统升级通知 Div */
|
||||
/* Hide upgrade notice */
|
||||
.layout-table > tbody > tr > td:nth-child(2) > div { display: none !important; }
|
||||
|
||||
/* 右侧:辅助工具 */
|
||||
/* Right: Utilities */
|
||||
.layout-table > tbody > tr > td:last-child {
|
||||
background: white !important; padding: 20px !important; border-radius: 4px; border: 1px solid var(--border-color) !important;
|
||||
}
|
||||
|
||||
/* 临床路径/值班表 标题美化 */
|
||||
/* Right Panel Headers */
|
||||
.layout-table > tbody > tr > td:last-child table tr:first-child td {
|
||||
background: transparent !important; color: #333 !important; font-weight: bold; border-bottom: 2px solid var(--primary) !important; padding-bottom: 5px !important; margin-bottom: 10px;
|
||||
}
|
||||
.layout-table > tbody > tr > td:last-child table tr:first-child font { color: #333 !important; }
|
||||
|
||||
/* 复选框行间距 */
|
||||
/* Checkbox Spacing */
|
||||
.layout-table > tbody > tr > td:last-child table tr:not(:first-child) td { padding: 5px 0 !important; }
|
||||
|
||||
/* 隐藏右侧的“常用链接”和下面的无序列表 */
|
||||
/* Hide legacy links */
|
||||
.layout-table > tbody > tr > td:last-child > p { display: none; }
|
||||
.layout-table > tbody > tr > td:last-child > ul { display: none; }
|
||||
|
||||
/* 页脚 */
|
||||
/* Footer */
|
||||
center:last-of-type {
|
||||
margin-top: 40px; border-top: 1px solid var(--border-color); padding: 20px; color: #999; font-size: 12px;
|
||||
}
|
||||
@@ -209,63 +209,63 @@
|
||||
<!-- Add Drug Modal -->
|
||||
<div id="drug-modal" class="modal-overlay">
|
||||
<div class="modal-box">
|
||||
<h3 style="margin-top:0; color:var(--primary); border-bottom:1px solid #eee; padding-bottom:10px;">新增长嘱</h3>
|
||||
<h3 style="margin-top:0; color:var(--primary); border-bottom:1px solid #eee; padding-bottom:10px;">New Order</h3>
|
||||
<div class="form-group">
|
||||
<label>药品名称</label>
|
||||
<label>Drug Name</label>
|
||||
<select id="modal-drug-name" onchange="updateDrugSpecs()">
|
||||
<option value="">-- 请选择 --</option>
|
||||
<option value="Aspirin">阿司匹林肠溶片</option>
|
||||
<option value="Atorvastatin">阿托伐他汀钙片</option>
|
||||
<option value="Metoprolol">美托洛尔缓释片</option>
|
||||
<option value="Cefradine">头孢拉定胶囊</option>
|
||||
<option value="Ibuprofen">布洛芬缓释胶囊</option>
|
||||
<option value="Insulin">人胰岛素注射液</option>
|
||||
<option value="Omeprazole">奥美拉唑肠溶胶囊</option>
|
||||
<option value="Metformin">二甲双胍片</option>
|
||||
<option value="">-- Select --</option>
|
||||
<option value="Aspirin">Aspirin Enteric-coated Tablets</option>
|
||||
<option value="Atorvastatin">Atorvastatin Calcium Tablets</option>
|
||||
<option value="Metoprolol">Metoprolol Succinate</option>
|
||||
<option value="Cefradine">Cefradine Capsules</option>
|
||||
<option value="Ibuprofen">Ibuprofen Sustained Release</option>
|
||||
<option value="Insulin">Human Insulin Injection</option>
|
||||
<option value="Omeprazole">Omeprazole Capsules</option>
|
||||
<option value="Metformin">Metformin Hydrochloride</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>规格 & 包装</label>
|
||||
<label>Spec & Package</label>
|
||||
<input type="text" id="modal-drug-spec" readonly style="background:#f5f5f5; color:#666;">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>用法用量</label>
|
||||
<label>Dosage</label>
|
||||
<div style="display:flex; gap:10px;">
|
||||
<input type="text" id="modal-drug-dose" placeholder="剂量 (如 100mg)">
|
||||
<input type="text" id="modal-drug-dose" placeholder="Dose (e.g. 100mg)">
|
||||
<select id="modal-drug-freq" style="width:140px;">
|
||||
<option value="qd">qd (每日一次)</option>
|
||||
<option value="bid">bid (每日两次)</option>
|
||||
<option value="tid">tid (每日三次)</option>
|
||||
<option value="qid">qid (每日四次)</option>
|
||||
<option value="qn">qn (每晚一次)</option>
|
||||
<option value="prn">prn (必要时)</option>
|
||||
<option value="qd">qd (once daily)</option>
|
||||
<option value="bid">bid (twice daily)</option>
|
||||
<option value="tid">tid (3 times daily)</option>
|
||||
<option value="qid">qid (4 times daily)</option>
|
||||
<option value="qn">qn (once nightly)</option>
|
||||
<option value="prn">prn (as needed)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>给药途径</label>
|
||||
<label>Route</label>
|
||||
<select id="modal-drug-route">
|
||||
<option value="口服">PO (口服)</option>
|
||||
<option value="静脉注射">IV (静脉注射)</option>
|
||||
<option value="皮下注射">IH (皮下注射)</option>
|
||||
<option value="雾化吸入">Inhale (雾化吸入)</option>
|
||||
<option value="PO">PO (Oral)</option>
|
||||
<option value="IV">IV (Intravenous)</option>
|
||||
<option value="IH">IH (Hypodermic)</option>
|
||||
<option value="Inhale">Inhale (Inhalation)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="text-align:right; margin-top:20px; padding-top:10px; border-top:1px solid #eee;">
|
||||
<button type="button" onclick="closeModal()" style="padding:8px 15px; margin-right:10px; background:white; border:1px solid #ccc; border-radius:4px; cursor:pointer;">取消</button>
|
||||
<button type="button" onclick="confirmAddDrug()" style="padding:8px 15px; background:var(--primary); color:white; border:none; border-radius:4px; cursor:pointer;">确认开立</button>
|
||||
<button type="button" onclick="closeModal()" style="padding:8px 15px; margin-right:10px; background:white; border:1px solid #ccc; border-radius:4px; cursor:pointer;">Cancel</button>
|
||||
<button type="button" onclick="confirmAddDrug()" style="padding:8px 15px; background:var(--primary); color:white; border:none; border-radius:4px; cursor:pointer;">Confirm</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="toast" class="toast">操作成功</div>
|
||||
<div id="toast-container"></div>
|
||||
|
||||
<table width="100%" border="1" bgcolor="#ffcccc" cellpadding="5">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<font color="red"><b>全院广播:</b> 请各科室注意,下午 3 点在行政楼会议室召开医保控费紧急会议。</font>
|
||||
<font color="red"><b>Broadcast:</b> Attention all departments, emergency meeting on insurance cost control at 3 PM in the Admin Building.</font>
|
||||
<br>
|
||||
<font size="2">发布时间:2025-12-22 08:30</font>
|
||||
<font size="2">Posted: 2025-12-22 08:30</font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -274,13 +274,13 @@
|
||||
<table width="100%" border="0" bgcolor="#008080" cellpadding="10">
|
||||
<tr>
|
||||
<td width="50%">
|
||||
<font color="white" size="5"><b>市中心医院 - 医生工作站</b></font>
|
||||
<font color="white" size="5"><b>City General Hospital - Doctor Station</b></font>
|
||||
</td>
|
||||
<td width="50%" align="right">
|
||||
<font color="white">
|
||||
当前用户:<b>李医生 (主治医师)</b> | 科室:心内科<br>
|
||||
<a href="javascript:void(0)" onclick="modifyPassword()" style="color:yellow">[修改密码]</a>
|
||||
<a href="javascript:void(0)" onclick="logout()" style="color:white">[注销登录]</a>
|
||||
User: <b>Dr. Li (Attending)</b> | Dept: Cardiology<br>
|
||||
<a href="javascript:void(0)" onclick="modifyPassword()" style="color:yellow">[Change Pwd]</a>
|
||||
<a href="javascript:void(0)" onclick="logout()" style="color:white">[Logout]</a>
|
||||
</font>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -289,12 +289,12 @@
|
||||
<table width="100%" border="1" cellpadding="0" cellspacing="0" bgcolor="#343a40">
|
||||
<tr>
|
||||
<td style="display:flex; padding:0;">
|
||||
<div class="nav-item active" onclick="switchModule(this, 'clinic')">门诊工作台</div>
|
||||
<div class="nav-item" onclick="switchModule(this, 'inpatient')">住院部管理</div>
|
||||
<div class="nav-item" onclick="switchModule(this, 'surgery')">手术排期</div>
|
||||
<div class="nav-item" onclick="switchModule(this, 'lab')">检验报告查询</div>
|
||||
<div class="nav-item" onclick="switchModule(this, 'pharmacy')">药房库存</div>
|
||||
<div class="nav-item" onclick="switchModule(this, 'admin')">医嘱管理</div>
|
||||
<div class="nav-item active" onclick="switchModule(this, 'clinic')">Outpatient</div>
|
||||
<div class="nav-item" onclick="switchModule(this, 'inpatient')">Inpatient</div>
|
||||
<div class="nav-item" onclick="switchModule(this, 'surgery')">Surgery</div>
|
||||
<div class="nav-item" onclick="switchModule(this, 'lab')">Lab Results</div>
|
||||
<div class="nav-item" onclick="switchModule(this, 'pharmacy')">Pharmacy</div>
|
||||
<div class="nav-item" onclick="switchModule(this, 'admin')">Order Admin</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -307,15 +307,15 @@
|
||||
<td width="250" valign="top" bgcolor="#f0f0f0" style="height: 100%;">
|
||||
<br>
|
||||
<table width="100%" border="1" cellpadding="0" style="background:white; border-radius:4px; overflow:hidden; border-collapse:collapse;">
|
||||
<tr><td bgcolor="#008080" style="padding:10px;"><font color="white"><b>待诊患者列表 (<span id="patient-count">0</span>)</b></font></td></tr>
|
||||
<tr><td bgcolor="#008080" style="padding:10px;"><font color="white"><b>Waiting List (<span id="patient-count">0</span>)</b></font></td></tr>
|
||||
<tbody id="patient-list-container">
|
||||
<!-- Dynamic Content -->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div style="margin-top:20px; padding:15px; background:#fff3cd; border:1px solid #ffeeba; border-radius:4px; color:#856404; font-size:12px;">
|
||||
<b>值班提示:</b><br>
|
||||
今晚急诊科留观床位已满,请协调转运。
|
||||
<b>Shift Note:</b><br>
|
||||
Emergency observation beds are full, please coordinate transfers.
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -323,7 +323,7 @@
|
||||
|
||||
<!-- Patient Info Header -->
|
||||
<table width="100%" border="1" cellpadding="5" bgcolor="#ffffff" id="patient-info-card" style="margin-bottom:20px;">
|
||||
<tr><td align="center" style="padding:40px; color:#999;">正在加载患者信息...</td></tr>
|
||||
<tr><td align="center" style="padding:40px; color:#999;">Loading patient info...</td></tr>
|
||||
</table>
|
||||
|
||||
<!-- Order Entry Form -->
|
||||
@@ -332,18 +332,18 @@
|
||||
<table width="100%" border="1" cellpadding="3" cellspacing="0">
|
||||
<tr>
|
||||
<td colspan="6" bgcolor="#dddddd" style="display:flex; justify-content:space-between; align-items:center;">
|
||||
<b>长期医嘱录入</b>
|
||||
<span style="font-size:12px; color:#666;">上次刷新: <span id="last-sync-time">Just now</span></span>
|
||||
<b>Long-term Order Entry</b>
|
||||
<span style="font-size:12px; color:#666;">Last refresh: <span id="last-sync-time">Just now</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
<thead style="background:#fafafa; color:#666; font-size:12px; font-weight:bold;">
|
||||
<tr style="display:grid; grid-template-columns: 40px 1.5fr 1fr 2fr 100px 80px; padding:10px; border-bottom:1px solid #eee;">
|
||||
<td>选</td>
|
||||
<td>药品名称</td>
|
||||
<td>规格</td>
|
||||
<td>用法用量</td>
|
||||
<td>状态</td>
|
||||
<td>操作</td>
|
||||
<td>Sel</td>
|
||||
<td>Drug Name</td>
|
||||
<td>Spec</td>
|
||||
<td>Dosage</td>
|
||||
<td>Status</td>
|
||||
<td>Action</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="order-list-body">
|
||||
@@ -352,9 +352,9 @@
|
||||
|
||||
<tr>
|
||||
<td colspan="6" align="right" style="padding:15px; border-top:1px solid #eee; background:#f8f9fa;">
|
||||
<button type="button" onclick="openAddDrugModal()" style="padding:8px 16px; background:white; border:1px solid #ced4da; color:var(--primary); border-radius:4px; cursor:pointer; font-weight:500;">+ 新增药品</button>
|
||||
<button type="button" onclick="signOrder()" style="padding:8px 16px; background:var(--primary); color:white; border:none; border-radius:4px; cursor:pointer; margin-left:10px; font-weight:500;">签署医嘱</button>
|
||||
<button type="button" onclick="voidOrder()" style="padding:8px 16px; background:var(--danger); color:white; border:none; border-radius:4px; cursor:pointer; margin-left:5px; font-weight:500;">作废条目</button>
|
||||
<button type="button" onclick="openAddDrugModal()" style="padding:8px 16px; background:white; border:1px solid #ced4da; color:var(--primary); border-radius:4px; cursor:pointer; font-weight:500;">+ Add Drug</button>
|
||||
<button type="button" onclick="signOrder()" style="padding:8px 16px; background:var(--primary); color:white; border:none; border-radius:4px; cursor:pointer; margin-left:10px; font-weight:500;">Sign Orders</button>
|
||||
<button type="button" onclick="voidOrder()" style="padding:8px 16px; background:var(--danger); color:white; border:none; border-radius:4px; cursor:pointer; margin-left:5px; font-weight:500;">Void Item</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -364,7 +364,7 @@
|
||||
|
||||
<!-- Labs -->
|
||||
<table width="100%" border="1" cellpadding="3" id="lab-panel" style="display:none; background:white; border-radius:4px;">
|
||||
<tr><td bgcolor="#dddddd"><b>检查报告 / 检验结果</b></td></tr>
|
||||
<tr><td bgcolor="#dddddd"><b>Lab / Exam Reports</b></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<ul style="padding-left:20px; margin:10px 0;" id="lab-list">
|
||||
@@ -378,7 +378,7 @@
|
||||
<td width="200" valign="top" bgcolor="#f0f0f0">
|
||||
<br>
|
||||
<table width="100%" border="1" cellpadding="3">
|
||||
<tr><td bgcolor="#008080"><font color="white"><b>临床路径</b></font></td></tr>
|
||||
<tr><td bgcolor="#008080"><font color="white"><b>Clinical Pathway</b></font></td></tr>
|
||||
<tbody id="clinical-path-list">
|
||||
<!-- Dynamic -->
|
||||
</tbody>
|
||||
@@ -386,18 +386,18 @@
|
||||
<br>
|
||||
|
||||
<table width="100%" border="1" cellpadding="3">
|
||||
<tr><td bgcolor="#008080"><font color="white"><b>值班排班</b></font></td></tr>
|
||||
<tr><td>周一:张医生 (白)</td></tr>
|
||||
<tr><td>周一:王医生 (夜)</td></tr>
|
||||
<tr><td>周二:李医生 (白)</td></tr>
|
||||
<tr><td>周二:赵医生 (夜)</td></tr>
|
||||
<tr><td bgcolor="#008080"><font color="white"><b>Shift Roster</b></font></td></tr>
|
||||
<tr><td>Mon: Dr. Zhang (Day)</td></tr>
|
||||
<tr><td>Mon: Dr. Wang (Night)</td></tr>
|
||||
<tr><td>Tue: Dr. Li (Day)</td></tr>
|
||||
<tr><td>Tue: Dr. Zhao (Night)</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
<p><b>常用链接:</b></p>
|
||||
<p><b>Quick Links:</b></p>
|
||||
<ul>
|
||||
<li><a href="javascript:void(0)" onclick="openOA()">OA系统</a></li>
|
||||
<li><a href="javascript:void(0)" onclick="openLibrary()">医学文献库</a></li>
|
||||
<li><a href="javascript:void(0)" onclick="openOA()">OA System</a></li>
|
||||
<li><a href="javascript:void(0)" onclick="openLibrary()">Medical Library</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -407,14 +407,14 @@
|
||||
<!-- Module: Inpatient -->
|
||||
<div id="module-inpatient" class="main-module" style="display:none; padding:20px;">
|
||||
<div style="background:white; padding:30px; border-radius:8px; text-align:center; border:1px solid #ddd;">
|
||||
<h2 style="color:#007bff;">住院部床位管理系统</h2>
|
||||
<p style="color:#666;">当前空闲床位: 12 张 | 重症监护室: 满员</p>
|
||||
<h2 style="color:#007bff;">Inpatient Bed Management</h2>
|
||||
<p style="color:#666;">Free Beds: 12 | ICU: Full</p>
|
||||
<div style="margin-top:20px; display:grid; grid-template-columns:repeat(auto-fill, minmax(100px, 1fr)); gap:10px;">
|
||||
<div style="background:#d4edda; padding:10px; border-radius:4px; color:#155724;">01床 (空)</div>
|
||||
<div style="background:#f8d7da; padding:10px; border-radius:4px; color:#721c24;">02床 (占用)</div>
|
||||
<div style="background:#f8d7da; padding:10px; border-radius:4px; color:#721c24;">03床 (占用)</div>
|
||||
<div style="background:#d4edda; padding:10px; border-radius:4px; color:#155724;">04床 (空)</div>
|
||||
<div style="background:#fff3cd; padding:10px; border-radius:4px; color:#856404;">05床 (预留)</div>
|
||||
<div style="background:#d4edda; padding:10px; border-radius:4px; color:#155724;">Bed 01 (Free)</div>
|
||||
<div style="background:#f8d7da; padding:10px; border-radius:4px; color:#721c24;">Bed 02 (Occupied)</div>
|
||||
<div style="background:#f8d7da; padding:10px; border-radius:4px; color:#721c24;">Bed 03 (Occupied)</div>
|
||||
<div style="background:#d4edda; padding:10px; border-radius:4px; color:#155724;">Bed 04 (Free)</div>
|
||||
<div style="background:#fff3cd; padding:10px; border-radius:4px; color:#856404;">Bed 05 (Reserved)</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -422,12 +422,12 @@
|
||||
<!-- Module: Surgery -->
|
||||
<div id="module-surgery" class="main-module" style="display:none; padding:20px;">
|
||||
<div style="background:white; padding:30px; border-radius:8px; border:1px solid #ddd;">
|
||||
<h2 style="color:#007bff; border-bottom:1px solid #eee; padding-bottom:10px;">手术排期表 (2025-12-23)</h2>
|
||||
<h2 style="color:#007bff; border-bottom:1px solid #eee; padding-bottom:10px;">Surgery Schedule (2025-12-23)</h2>
|
||||
<table width="100%" border="0" cellpadding="10">
|
||||
<tr bgcolor="#f8f9fa" style="font-weight:bold;"><td>时间</td><td>手术室</td><td>患者</td><td>手术名称</td><td>主刀</td></tr>
|
||||
<tr><td>08:00</td><td>OR-01</td><td>张三</td><td>冠状动脉搭桥术</td><td>Dr. Liu</td></tr>
|
||||
<tr><td>09:30</td><td>OR-03</td><td>Unknown</td><td>急诊阑尾切除</td><td>Dr. Wang</td></tr>
|
||||
<tr><td>13:00</td><td>OR-02</td><td>李四</td><td>白内障超声乳化</td><td>Dr. Zhang</td></tr>
|
||||
<tr bgcolor="#f8f9fa" style="font-weight:bold;"><td>Time</td><td>OR</td><td>Patient</td><td>Procedure</td><td>Surgeon</td></tr>
|
||||
<tr><td>08:00</td><td>OR-01</td><td>Zhang San</td><td>CABG</td><td>Dr. Liu</td></tr>
|
||||
<tr><td>09:30</td><td>OR-03</td><td>Unknown</td><td>Appendectomy</td><td>Dr. Wang</td></tr>
|
||||
<tr><td>13:00</td><td>OR-02</td><td>Li Si</td><td>Cataract Phaco</td><td>Dr. Zhang</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -435,21 +435,21 @@
|
||||
<!-- Module: Lab -->
|
||||
<div id="module-lab" class="main-module" style="display:none; padding:20px;">
|
||||
<div style="background:white; padding:40px; border-radius:8px; text-align:center; border:1px solid #ddd;">
|
||||
<h2 style="color:#17a2b8;">LIS 检验报告查询</h2>
|
||||
<input id="lab-search-input" type="text" placeholder="输入住院号/姓名搜索..." style="padding:10px; width:300px; border:1px solid #ccc; border-radius:4px;">
|
||||
<button onclick="searchLabReport()" style="padding:10px 20px; background:#17a2b8; color:white; border:none; border-radius:4px; cursor:pointer;">查询</button>
|
||||
<h2 style="color:#17a2b8;">LIS Report Search</h2>
|
||||
<input id="lab-search-input" type="text" placeholder="Enter Patient ID/Name..." style="padding:10px; width:300px; border:1px solid #ccc; border-radius:4px;">
|
||||
<button onclick="searchLabReport()" style="padding:10px 20px; background:#17a2b8; color:white; border:none; border-radius:4px; cursor:pointer;">Search</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Module: Pharmacy -->
|
||||
<div id="module-pharmacy" class="main-module" style="display:none; padding:20px;">
|
||||
<div style="background:white; padding:30px; border-radius:8px; border:1px solid #ddd;">
|
||||
<h2 style="color:#28a745;">药房库存预警</h2>
|
||||
<h2 style="color:#28a745;">Pharmacy Stock Alert</h2>
|
||||
<table width="100%" border="0" cellpadding="8">
|
||||
<tr style="border-bottom:2px solid #eee;"><td>药品名</td><td>库存量</td><td>状态</td><td>操作</td></tr>
|
||||
<tr><td>阿司匹林</td><td>12,000</td><td style="color:green">充足</td><td>-</td></tr>
|
||||
<tr><td>胰岛素注射液</td><td>50</td><td style="color:red; font-weight:bold;">缺货预警</td><td><a href="javascript:void(0)" onclick="restockDrug('胰岛素注射液')">申请补货</a></td></tr>
|
||||
<tr><td>头孢拉定</td><td>340</td><td style="color:orange">一般</td><td>-</td></tr>
|
||||
<tr style="border-bottom:2px solid #eee;"><td>Drug Name</td><td>Stock</td><td>Status</td><td>Action</td></tr>
|
||||
<tr><td>Aspirin</td><td>12,000</td><td style="color:green">Sufficient</td><td>-</td></tr>
|
||||
<tr><td>Insulin Inj</td><td>50</td><td style="color:red; font-weight:bold;">Low Stock</td><td><a href="javascript:void(0)" onclick="restockDrug('Insulin')">Request Restock</a></td></tr>
|
||||
<tr><td>Cefradine</td><td>340</td><td style="color:orange">Normal</td><td>-</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -457,11 +457,11 @@
|
||||
<!-- Module: Admin -->
|
||||
<div id="module-admin" class="main-module" style="display:none; padding:20px;">
|
||||
<div style="background:white; padding:30px; border-radius:8px; border:1px solid #ddd;">
|
||||
<h2 style="color:#6c757d;">系统管理 & 医嘱审核</h2>
|
||||
<h2 style="color:#6c757d;">System Admin & Order Audit</h2>
|
||||
<div id="admin-task-area">
|
||||
<p>当前共有 <b>3</b> 条医嘱待主任审核。</p>
|
||||
<button onclick="batchApproveOrders()" style="padding:8px 15px; background:#007bff; color:white; border:none; border-radius:4px; cursor:pointer;">批量通过</button>
|
||||
<button onclick="batchRejectOrders()" style="padding:8px 15px; background:#dc3545; color:white; border:none; border-radius:4px; cursor:pointer;">批量驳回</button>
|
||||
<p>You have <b>3</b> orders waiting for approval.</p>
|
||||
<button onclick="batchApproveOrders()" style="padding:8px 15px; background:#007bff; color:white; border:none; border-radius:4px; cursor:pointer;">Batch Approve</button>
|
||||
<button onclick="batchRejectOrders()" style="padding:8px 15px; background:#dc3545; color:white; border:none; border-radius:4px; cursor:pointer;">Batch Reject</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -470,8 +470,8 @@
|
||||
|
||||
<center>
|
||||
<font size="1">
|
||||
技术支持:市卫生信息中心 | 电话:8888-1234<br>
|
||||
版权所有 © 2025 City General Hospital
|
||||
Tech Support: Health Info Center | Tel: 8888-1234<br>
|
||||
Copyright © 2025 City General Hospital
|
||||
</font>
|
||||
</center>
|
||||
|
||||
@@ -480,86 +480,86 @@
|
||||
// Mock Data
|
||||
// -------------------------------------------------------------------------
|
||||
const DRUG_DICT = {
|
||||
'Aspirin': { name: '阿司匹林肠溶片', spec: '100mg*30片' },
|
||||
'Atorvastatin': { name: '阿托伐他汀钙片', spec: '20mg*7片' },
|
||||
'Metoprolol': { name: '美托洛尔缓释片', spec: '47.5mg*7片' },
|
||||
'Cefradine': { name: '头孢拉定胶囊', spec: '0.25g*24粒' },
|
||||
'Ibuprofen': { name: '布洛芬缓释胶囊', spec: '0.3g*10粒' },
|
||||
'Insulin': { name: '人胰岛素注射液', spec: '3ml:300IU' },
|
||||
'Omeprazole': { name: '奥美拉唑肠溶胶囊', spec: '20mg*14粒' },
|
||||
'Metformin': { name: '二甲双胍片', spec: '0.5g*20片' }
|
||||
'Aspirin': { name: 'Aspirin Enteric-coated Tablets', spec: '100mg*30 tabs' },
|
||||
'Atorvastatin': { name: 'Atorvastatin Calcium Tablets', spec: '20mg*7 tabs' },
|
||||
'Metoprolol': { name: 'Metoprolol Succinate', spec: '47.5mg*7 tabs' },
|
||||
'Cefradine': { name: 'Cefradine Capsules', spec: '0.25g*24 caps' },
|
||||
'Ibuprofen': { name: 'Ibuprofen Sustained Release', spec: '0.3g*10 caps' },
|
||||
'Insulin': { name: 'Human Insulin Injection', spec: '3ml:300IU' },
|
||||
'Omeprazole': { name: 'Omeprazole Capsules', spec: '20mg*14 caps' },
|
||||
'Metformin': { name: 'Metformin Hydrochloride', spec: '0.5g*20 tabs' }
|
||||
};
|
||||
|
||||
let PATIENTS = [
|
||||
{
|
||||
id: 101, name: "张三", gender: "男", age: 45, type: "common",
|
||||
complaint: "胸闷气短三天",
|
||||
diagnosis: "冠心病; 心绞痛",
|
||||
tags: ["胸痛", "高血压"],
|
||||
allergies: ["青霉素"],
|
||||
insurance: "省医保",
|
||||
id: 101, name: "Zhang San", gender: "M", age: 45, type: "common",
|
||||
complaint: "Chest tightness for 3 days",
|
||||
diagnosis: "Coronary Heart Disease; Angina",
|
||||
tags: ["Chest Pain", "Hypertension"],
|
||||
allergies: ["Penicillin"],
|
||||
insurance: "Provincial Insurance",
|
||||
vitals: { bp: "140/90", hr: 88, t: 36.5 },
|
||||
orders: [
|
||||
{ id: 1, drug: "Aspirin", dose: "100mg", freq: "qd", route: "口服", status: "signed" },
|
||||
{ id: 2, drug: "Atorvastatin", dose: "20mg", freq: "qn", route: "口服", status: "signed" }
|
||||
{ id: 1, drug: "Aspirin", dose: "100mg", freq: "qd", route: "PO", status: "signed" },
|
||||
{ id: 2, drug: "Atorvastatin", dose: "20mg", freq: "qn", route: "PO", status: "signed" }
|
||||
],
|
||||
labs: [
|
||||
{ date: "2025-12-20", name: "心电图", result: "窦性心律,ST段轻度压低", link: true},
|
||||
{ date: "2025-12-20", name: "心脏彩超", result: "左室舒张功能减低,EF 55%", link: true},
|
||||
{ date: "2025-12-19", name: "血常规", result: "WBC 6.5, Hb 135, PLT 210", link: false}
|
||||
{ date: "2025-12-20", name: "ECG", result: "Sinus rhythm, slight ST depression", link: true},
|
||||
{ date: "2025-12-20", name: "Echo", result: "Diastolic dysfunction, EF 55%", link: true},
|
||||
{ date: "2025-12-19", name: "CBC", result: "WBC 6.5, Hb 135, PLT 210", link: false}
|
||||
],
|
||||
pathways: [
|
||||
{ name: "入院宣教", checked: true },
|
||||
{ name: "签署知情同意书", checked: true },
|
||||
{ name: "上级医师查房", checked: false },
|
||||
{ name: "术前讨论", checked: false }
|
||||
{ name: "Admission Education", checked: true },
|
||||
{ name: "Sign Consent Form", checked: true },
|
||||
{ name: "Physician Ward Round", checked: false },
|
||||
{ name: "Pre-op Discussion", checked: false }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 102, name: "李四", gender: "女", age: 62, type: "common",
|
||||
complaint: "头晕伴恶心一周",
|
||||
diagnosis: "高血压病(3级); 颈椎病",
|
||||
tags: ["头晕"],
|
||||
allergies: ["无"],
|
||||
insurance: "新农合",
|
||||
id: 102, name: "Li Si", gender: "F", age: 62, type: "common",
|
||||
complaint: "Dizziness and nausea for 1 week",
|
||||
diagnosis: "Hypertension (Grade 3); Cervical Spondylosis",
|
||||
tags: ["Dizziness"],
|
||||
allergies: ["None"],
|
||||
insurance: "Rural Cooperative Medical Scheme",
|
||||
vitals: { bp: "160/100", hr: 76, t: 36.8 },
|
||||
orders: [
|
||||
{ id: 3, drug: "Metoprolol", dose: "23.75mg", freq: "qd", route: "口服", status: "draft" }
|
||||
{ id: 3, drug: "Metoprolol", dose: "23.75mg", freq: "qd", route: "PO", status: "draft" }
|
||||
],
|
||||
labs: [
|
||||
{ date: "2025-12-21", name: "头颅CT", result: "未见明显异常", link: true},
|
||||
{ date: "2025-12-21", name: "生化全套", result: "TG 2.3mmol/L (偏高)", link: false}
|
||||
{ date: "2025-12-21", name: "Head CT", result: "No significant abnormality", link: true},
|
||||
{ date: "2025-12-21", name: "Biochemistry", result: "TG 2.3mmol/L (High)", link: false}
|
||||
],
|
||||
pathways: [
|
||||
{ name: "入院宣教", checked: true },
|
||||
{ name: "血压监测 (Q4H)", checked: true },
|
||||
{ name: "眼底检查", checked: false }
|
||||
{ name: "Admission Education", checked: true },
|
||||
{ name: "BP Monitoring (Q4H)", checked: true },
|
||||
{ name: "Fundus Exam", checked: false }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 103, name: "王总", gender: "男", age: 50, type: "vip",
|
||||
complaint: "年度体检报告咨询",
|
||||
diagnosis: "脂肪肝; 高尿酸血症",
|
||||
tags: ["VIP", "体检"],
|
||||
allergies: ["磺胺类"],
|
||||
insurance: "自费",
|
||||
id: 103, name: "Mr. Wang", gender: "M", age: 50, type: "vip",
|
||||
complaint: "Consultation on annual checkup report",
|
||||
diagnosis: "Fatty Liver; Hyperuricemia",
|
||||
tags: ["VIP", "Checkup"],
|
||||
allergies: ["Sulfonamides"],
|
||||
insurance: "Self-pay",
|
||||
vitals: { bp: "130/85", hr: 80, t: 36.6 },
|
||||
orders: [], // Empty initially
|
||||
labs: [
|
||||
{ date: "2025-12-22", name: "肝功能", result: "ALT 55, AST 40", link: false},
|
||||
{ date: "2025-12-22", name: "腹部B超", result: "中度脂肪肝", link: true}
|
||||
{ date: "2025-12-22", name: "Liver Function", result: "ALT 55, AST 40", link: false},
|
||||
{ date: "2025-12-22", name: "Abdominal Ultrasound", result: "Moderate fatty liver", link: true}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 104, name: "赵六", gender: "男", age: 28, type: "common",
|
||||
complaint: "急性胃痛2小时",
|
||||
diagnosis: "急性胃炎",
|
||||
tags: ["急诊"],
|
||||
allergies: ["无"],
|
||||
insurance: "市医保",
|
||||
id: 104, name: "Zhao Liu", gender: "M", age: 28, type: "common",
|
||||
complaint: "Acute stomach pain for 2 hours",
|
||||
diagnosis: "Acute Gastritis",
|
||||
tags: ["Emergency"],
|
||||
allergies: ["None"],
|
||||
insurance: "City Insurance",
|
||||
vitals: { bp: "120/75", hr: 92, t: 37.2 },
|
||||
orders: [
|
||||
{ id: 4, drug: "Omeprazole", dose: "20mg", freq: "qd", route: "口服", status: "signed" }
|
||||
{ id: 4, drug: "Omeprazole", dose: "20mg", freq: "qd", route: "PO", status: "signed" }
|
||||
],
|
||||
labs: []
|
||||
}
|
||||
@@ -602,28 +602,28 @@
|
||||
const target = document.getElementById(`module-${moduleName}`);
|
||||
if(target) {
|
||||
target.style.display = 'block';
|
||||
showToast(`已切换至 [${moduleName === 'clinic' ? '门诊工作台' :
|
||||
moduleName === 'inpatient' ? '住院部管理' :
|
||||
moduleName === 'surgery' ? '手术排期' :
|
||||
moduleName === 'lab' ? '检验报告' :
|
||||
moduleName === 'pharmacy' ? '药房库存' : '医嘱管理'}]`);
|
||||
showToast(`Switched to [${moduleName === 'clinic' ? 'Outpatient' :
|
||||
moduleName === 'inpatient' ? 'Inpatient' :
|
||||
moduleName === 'surgery' ? 'Surgery' :
|
||||
moduleName === 'lab' ? 'Lab Results' :
|
||||
moduleName === 'pharmacy' ? 'Pharmacy' : 'Order Admin'}]`);
|
||||
} else {
|
||||
// Fallback
|
||||
document.getElementById('module-clinic').style.display = 'block';
|
||||
showToast(`模块 [${moduleName}] 正在维护中`, "warning");
|
||||
showToast(`Module [${moduleName}] is under maintenance`, "warning");
|
||||
}
|
||||
}
|
||||
|
||||
function logout() {
|
||||
if(confirm("确定要退出当前用户 (Dr. Zhang) 吗?")) {
|
||||
showToast("正在注销...", "info");
|
||||
if(confirm("Are you sure you want to logout Current User (Dr. Zhang)?")) {
|
||||
showToast("Logging out...", "info");
|
||||
setTimeout(() => location.reload(), 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function openOA() { showToast("正在打开OA办公系统..."); }
|
||||
function openLibrary() { showToast("正在连接医院知识库..."); }
|
||||
function modifyPassword() { showToast("请联系信息科重置密码"); }
|
||||
function openOA() { showToast("Opening OA System..."); }
|
||||
function openLibrary() { showToast("Connecting to Medical Knowledge Base..."); }
|
||||
function modifyPassword() { showToast("Please contact IT dept to reset password"); }
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Core Logic
|
||||
@@ -656,18 +656,18 @@
|
||||
if (p.type === 'vip') rowStyle = 'background-color:#fffbe6;';
|
||||
|
||||
// Name display formatting
|
||||
let nameHtml = `<b>${p.id}. ${p.name} (${p.gender}, ${p.age}岁)</b>`;
|
||||
if (p.type === 'vip') nameHtml = `<font color="red"><b>VIP. ${p.name} (${p.gender}, ${p.age}岁)</b></font>`;
|
||||
let nameHtml = `<b>${p.id}. ${p.name} (${p.gender}, ${p.age}y)</b>`;
|
||||
if (p.type === 'vip') nameHtml = `<font color="red"><b>VIP. ${p.name} (${p.gender}, ${p.age}y)</b></font>`;
|
||||
|
||||
const actionsHtml = `<div style="margin-top:5px;">
|
||||
<a href="javascript:void(0)" style="font-size:12px;">[接诊]</a>
|
||||
<a href="javascript:void(0)" style="font-size:12px; color:#999; margin-left:5px;">[过号]</a>
|
||||
<a href="javascript:void(0)" style="font-size:12px;">[Consult]</a>
|
||||
<a href="javascript:void(0)" style="font-size:12px; color:#999; margin-left:5px;">[Skip]</a>
|
||||
</div>`;
|
||||
|
||||
tr.innerHTML = `
|
||||
<td style="padding:15px; border-bottom:1px solid #eee; ${rowStyle}">
|
||||
${nameHtml}<br>
|
||||
<font size="2" color="#666">主诉:${p.complaint}</font><br>
|
||||
<font size="2" color="#666">C/C: ${p.complaint}</font><br>
|
||||
${actionsHtml}
|
||||
</td>
|
||||
`;
|
||||
@@ -684,20 +684,20 @@
|
||||
|
||||
// Render Top Info
|
||||
const infoCard = document.getElementById('patient-info-card');
|
||||
const allergyHtml = p.allergies.includes("无") ? '无' : `<font color="red" style="background:#ffe3e3; padding:2px 5px; border-radius:3px;">${p.allergies.join(',')}</font>`;
|
||||
const allergyHtml = p.allergies.includes("None") ? 'None' : `<font color="red" style="background:#ffe3e3; padding:2px 5px; border-radius:3px;">${p.allergies.join(',')}</font>`;
|
||||
|
||||
infoCard.innerHTML = `
|
||||
<tr>
|
||||
<td colspan="4" bgcolor="#cccccc"><b>当前患者:${p.name} (ID: 2025${p.id})</b> - <font color="#333">${p.diagnosis}</font></td>
|
||||
<td colspan="4" bgcolor="#cccccc"><b>Patient: ${p.name} (ID: 2025${p.id})</b> - <font color="#333">${p.diagnosis}</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="15%"><b>过敏史:</b></td>
|
||||
<td width="15%"><b>Allergies:</b></td>
|
||||
<td width="35%">${allergyHtml}</td>
|
||||
<td width="15%"><b>费别:</b></td>
|
||||
<td width="15%"><b>Insurance:</b></td>
|
||||
<td width="35%">${p.insurance}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>生命体征:</b></td>
|
||||
<td><b>Vitals:</b></td>
|
||||
<td colspan="3">BP: ${p.vitals.bp} mmHg, HR: ${p.vitals.hr}, T: ${p.vitals.t}°C</td>
|
||||
</tr>
|
||||
`;
|
||||
@@ -706,10 +706,10 @@
|
||||
const labList = document.getElementById('lab-list');
|
||||
labList.innerHTML = '';
|
||||
if (p.labs.length === 0) {
|
||||
labList.innerHTML = '<li style="color:#999;font-style:italic;">暂无检查结果</li>';
|
||||
labList.innerHTML = '<li style="color:#999;font-style:italic;">No lab results</li>';
|
||||
} else {
|
||||
p.labs.forEach(lab => {
|
||||
const linkPart = lab.link ? ` <a href="javascript:void(0)" onclick="viewLabImage('${lab.name}')">[查看图像]</a>` : '';
|
||||
const linkPart = lab.link ? ` <a href="javascript:void(0)" onclick="viewLabImage('${lab.name}')">[View Image]</a>` : '';
|
||||
const li = document.createElement('li');
|
||||
li.style.marginBottom = '5px';
|
||||
li.innerHTML = `${lab.date}: ${lab.name} - ${lab.result} ${linkPart}`;
|
||||
@@ -732,7 +732,7 @@
|
||||
|
||||
container.innerHTML = '';
|
||||
if(!p.pathways || p.pathways.length === 0) {
|
||||
container.innerHTML = '<tr><td colspan="2" style="color:#999; text-align:center;">暂无临床路径任务</td></tr>';
|
||||
container.innerHTML = '<tr><td colspan="2" style="color:#999; text-align:center;">No clinical pathway tasks</td></tr>';
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -757,22 +757,22 @@
|
||||
tbody.innerHTML = '';
|
||||
|
||||
if(p.orders.length === 0) {
|
||||
tbody.innerHTML = '<tr><td colspan="6" align="center" style="padding:20px; color:#999;">暂无医嘱,请点击“新增药品”开立</td></tr>';
|
||||
tbody.innerHTML = '<tr><td colspan="6" align="center" style="padding:20px; color:#999;">No orders yet. Click "Add Drug" to start.</td></tr>';
|
||||
return;
|
||||
}
|
||||
|
||||
p.orders.forEach(order => {
|
||||
const drugInfo = DRUG_DICT[order.drug] || { name: order.drug, spec: '未知' };
|
||||
const drugInfo = DRUG_DICT[order.drug] || { name: order.drug, spec: 'Unknown' };
|
||||
|
||||
let statusBadge = '';
|
||||
let actionHtml = '';
|
||||
|
||||
if (order.status === 'signed') {
|
||||
statusBadge = '<span class="status-badge badge-signed">已签署</span>';
|
||||
actionHtml = '<span style="color:#ccc; font-size:12px;">不可撤</span>'; // Simplify logic
|
||||
statusBadge = '<span class="status-badge badge-signed">Signed</span>';
|
||||
actionHtml = '<span style="color:#ccc; font-size:12px;">Locked</span>'; // Simplify logic
|
||||
} else {
|
||||
statusBadge = '<span class="status-badge badge-draft">草稿</span>';
|
||||
actionHtml = `<a href="javascript:void(0)" style="color:#dc3545;" onclick="removeOrder(${order.id})">删除</a>`;
|
||||
statusBadge = '<span class="status-badge badge-draft">Draft</span>';
|
||||
actionHtml = `<a href="javascript:void(0)" style="color:#dc3545;" onclick="removeOrder(${order.id})">Delete</a>`;
|
||||
}
|
||||
|
||||
const tr = document.createElement('tr');
|
||||
@@ -830,7 +830,7 @@
|
||||
const dose = document.getElementById('modal-drug-dose').value;
|
||||
|
||||
if(!key || !dose) {
|
||||
showToast("请完善药品和剂量信息", "error");
|
||||
showToast("Please complete drug and dosage info", "error");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -851,15 +851,15 @@
|
||||
|
||||
closeModal();
|
||||
renderOrders();
|
||||
showToast("医嘱已开立 (草稿)", "success");
|
||||
showToast("Order Created (Draft)", "success");
|
||||
}
|
||||
|
||||
function removeOrder(orderId) {
|
||||
if(!confirm("确定要删除这条医嘱吗?")) return;
|
||||
if(!confirm("Are you sure you want to delete this order?")) return;
|
||||
const p = PATIENTS.find(x => x.id === currentPatientId);
|
||||
p.orders = p.orders.filter(o => o.id !== orderId);
|
||||
renderOrders();
|
||||
showToast("医嘱已删除");
|
||||
showToast("Order Deleted");
|
||||
}
|
||||
|
||||
function signOrder() {
|
||||
@@ -867,24 +867,24 @@
|
||||
const drafts = p.orders.filter(o => o.status === 'draft');
|
||||
|
||||
if (drafts.length === 0) {
|
||||
showToast("当前没有需要签署的草稿医嘱。", "warning");
|
||||
showToast("No draft orders to sign.", "warning");
|
||||
return;
|
||||
}
|
||||
|
||||
const pin = prompt(`正在为患者 [${p.name}] 签署 ${drafts.length} 条医嘱。\n\n请输入电子签名密码 (随意输入):`);
|
||||
const pin = prompt(`Signing ${drafts.length} orders for patient [${p.name}].\n\nPlease enter E-Signature PIN (any input):`);
|
||||
if(pin) {
|
||||
drafts.forEach(o => o.status = 'signed');
|
||||
showToast("医嘱已签署,并发送至药房系统。", "success");
|
||||
showToast("Orders Signed & Sent to Pharmacy.", "success");
|
||||
renderOrders();
|
||||
}
|
||||
}
|
||||
|
||||
function voidOrder() {
|
||||
showToast("请先选择要作废的已签署医嘱,然后提交医务科审核。", "warning");
|
||||
showToast("Select signed orders to void, then submit for Medical Director approval.", "warning");
|
||||
}
|
||||
|
||||
function viewLabImage(name) {
|
||||
showToast(`正在调取 PACS 系统图像: ${name}...`, "info");
|
||||
showToast(`Retrieving PACS Image: ${name}...`, "info");
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
@@ -893,33 +893,33 @@
|
||||
function searchLabReport() {
|
||||
const val = document.getElementById('lab-search-input').value;
|
||||
if(!val) {
|
||||
showToast("请输入查询关键字", "warning");
|
||||
showToast("Please enter search keywords", "warning");
|
||||
return;
|
||||
}
|
||||
showToast(`正在 LIS 系统中检索 [${val}] 的报告...`, "info");
|
||||
showToast(`Searching LIS for [${val}]...`, "info");
|
||||
setTimeout(() => {
|
||||
showToast("未查询到相关记录 (模拟)", "error");
|
||||
showToast("No records found (Mock)", "error");
|
||||
}, 1500);
|
||||
}
|
||||
|
||||
function restockDrug(drugName) {
|
||||
if(confirm(`确定要向药库发送 [${drugName}] 的补货申请吗?`)) {
|
||||
showToast("补货申请已提交至物资科", "success");
|
||||
if(confirm(`Send restock request for [${drugName}]?`)) {
|
||||
showToast("Restock request sent to Supply Chain", "success");
|
||||
}
|
||||
}
|
||||
|
||||
function batchApproveOrders() {
|
||||
if(confirm("确定要批量审核通过这 3 条医嘱吗?")) {
|
||||
showToast("已完成批量审核", "success");
|
||||
document.getElementById('admin-task-area').innerHTML = '<p style="color:green;">所有待办任务已处理完毕。</p>';
|
||||
if(confirm("Batch approve these 3 orders?")) {
|
||||
showToast("Batch Approval Complete", "success");
|
||||
document.getElementById('admin-task-area').innerHTML = '<p style="color:green;">All pending tasks completed.</p>';
|
||||
}
|
||||
}
|
||||
|
||||
function batchRejectOrders() {
|
||||
const reason = prompt("请输入驳回原因:");
|
||||
const reason = prompt("Enter Rejection Reason:");
|
||||
if(reason) {
|
||||
showToast(`已驳回 3 条医嘱,原因: ${reason}`, "info");
|
||||
document.getElementById('admin-task-area').innerHTML = '<p style="color:green;">所有待办任务已处理完毕。</p>';
|
||||
showToast(`3 Orders Rejected. Reason: ${reason}`, "info");
|
||||
document.getElementById('admin-task-area').innerHTML = '<p style="color:green;">All pending tasks completed.</p>';
|
||||
}
|
||||
}
|
||||
|
||||
22
010/record.json
Normal file
22
010/record.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"step-1": {
|
||||
"query": "进入药房管理页面",
|
||||
"grounding_area": ""
|
||||
},
|
||||
"step-2": {
|
||||
"query": "为胰岛素申请补货",
|
||||
"grounding_area": ""
|
||||
},
|
||||
"step-3": {
|
||||
"query": "返回门诊医生工作站",
|
||||
"grounding_area": ""
|
||||
},
|
||||
"step-4": {
|
||||
"query": "在左侧的候诊列表中,找到并点击选择 VIP 患者 Mr. Wang",
|
||||
"grounding_area": ""
|
||||
},
|
||||
"step-5": {
|
||||
"query": "看一下其超声图片",
|
||||
"grounding_area": ""
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user