Merge develop into test - sync latest code
This commit is contained in:
60
scripts/check_activity_id.py
Normal file
60
scripts/check_activity_id.py
Normal file
@@ -0,0 +1,60 @@
|
||||
import psycopg2
|
||||
import sys
|
||||
|
||||
sys.stdout.reconfigure(encoding="utf-8")
|
||||
|
||||
conn = psycopg2.connect(
|
||||
host="192.168.110.252",
|
||||
port=15432,
|
||||
database="postgresql",
|
||||
user="postgresql",
|
||||
password="Jchl1528",
|
||||
)
|
||||
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("SET search_path TO hisdev, public")
|
||||
|
||||
print("=" * 80)
|
||||
print("检查手术医嘱的 activity_id 和 advice_name")
|
||||
print("=" * 80)
|
||||
print()
|
||||
|
||||
# 查询手术医嘱的 activity_id
|
||||
cursor.execute("""
|
||||
SELECT
|
||||
sr.id,
|
||||
sr.prescription_no,
|
||||
sr.activity_id,
|
||||
ad.name as activity_name,
|
||||
sr.content_json
|
||||
FROM wor_service_request sr
|
||||
LEFT JOIN wor_activity_definition ad ON ad.id = sr.activity_id AND ad.delete_flag = '0'
|
||||
WHERE sr.category_enum = 4
|
||||
AND sr.delete_flag = '0'
|
||||
AND sr.encounter_id = 2038823905749327873
|
||||
""")
|
||||
|
||||
rows = cursor.fetchall()
|
||||
for row in rows:
|
||||
print(f"医嘱ID: {row[0]}")
|
||||
print(f"单号: {row[1]}")
|
||||
print(f"activity_id: {row[2]}")
|
||||
print(f"activity_name: {row[3]}")
|
||||
if row[4]:
|
||||
import json
|
||||
|
||||
try:
|
||||
content = json.loads(row[4]) if isinstance(row[4], str) else row[4]
|
||||
print(f"手术名称: {content.get('surgeryName', 'N/A')}")
|
||||
except:
|
||||
print(f"content_json: {row[4][:100]}")
|
||||
print("-" * 80)
|
||||
|
||||
print()
|
||||
print("问题:SQL查询使用 activity_id 关联 wor_activity_definition 获取 advice_name")
|
||||
print("但手术医嘱的 activity_id 可能为 null 或指向不存在的记录!")
|
||||
print()
|
||||
print("解决方案:应该从 content_json 中解析 surgeryName 作为 advice_name")
|
||||
|
||||
cursor.close()
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user