Merge develop into test - sync latest code
This commit is contained in:
117
scripts/check_surgery_db.py
Normal file
117
scripts/check_surgery_db.py
Normal file
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import psycopg2
|
||||
import json
|
||||
from datetime import datetime
|
||||
|
||||
DB_CONFIG = {
|
||||
"host": "192.168.110.252",
|
||||
"port": 15432,
|
||||
"database": "postgresql",
|
||||
"user": "postgresql",
|
||||
"password": "Jchl1528",
|
||||
"options": "-c search_path=hisdev",
|
||||
}
|
||||
|
||||
|
||||
def check_surgery_advice():
|
||||
conn = None
|
||||
try:
|
||||
print("Connecting to database...")
|
||||
conn = psycopg2.connect(**DB_CONFIG)
|
||||
cursor = conn.cursor()
|
||||
print("Connected!\n")
|
||||
|
||||
print("=" * 80)
|
||||
print("Surgery Advice Diagnostic Report")
|
||||
print("=" * 80)
|
||||
print(f"Time: {datetime.now()}")
|
||||
print()
|
||||
|
||||
# 1. Query recent surgery advice
|
||||
print("1. Recent surgery advice records:")
|
||||
print("-" * 80)
|
||||
cursor.execute("""
|
||||
SELECT
|
||||
id,
|
||||
category_enum,
|
||||
activity_id,
|
||||
content_json::jsonb->>'surgeryName' as surgery_name,
|
||||
content_json::jsonb->>'surgeryCode' as surgery_code,
|
||||
create_time
|
||||
FROM wor_service_request
|
||||
WHERE category_enum = 4
|
||||
AND delete_flag = '0'
|
||||
ORDER BY create_time DESC
|
||||
LIMIT 5
|
||||
""")
|
||||
|
||||
rows = cursor.fetchall()
|
||||
if not rows:
|
||||
print("No surgery advice found (category_enum = 4)")
|
||||
else:
|
||||
for row in rows:
|
||||
print(f"\nID: {row[0]}")
|
||||
print(f" category_enum: {row[1]}")
|
||||
print(f" activity_id: {row[2]}")
|
||||
print(f" surgeryName from JSON: {row[3]}")
|
||||
print(f" surgeryCode from JSON: {row[4]}")
|
||||
print(f" create_time: {row[5]}")
|
||||
|
||||
if not row[3]:
|
||||
print(" WARNING: surgeryName is EMPTY!")
|
||||
else:
|
||||
print(" OK: surgeryName exists")
|
||||
|
||||
print("\n" + "=" * 80)
|
||||
|
||||
# 2. Test SQL COALESCE query
|
||||
print("\n2. Testing SQL COALESCE query:")
|
||||
print("-" * 80)
|
||||
|
||||
cursor.execute("""
|
||||
SELECT
|
||||
wsr.id,
|
||||
COALESCE(wad.NAME, wsr.content_json::jsonb->>'surgeryName', wsr.content_json::jsonb->>'adviceName') AS advice_name,
|
||||
wsr.content_json::jsonb->>'surgeryName' AS surgery_name_from_json,
|
||||
wad.NAME AS activity_name,
|
||||
wsr.activity_id
|
||||
FROM wor_service_request wsr
|
||||
LEFT JOIN wor_activity_definition wad ON wad.ID = wsr.activity_id AND wad.delete_flag = '0'
|
||||
WHERE wsr.category_enum = 4
|
||||
AND wsr.delete_flag = '0'
|
||||
ORDER BY wsr.create_time DESC
|
||||
LIMIT 5
|
||||
""")
|
||||
|
||||
rows = cursor.fetchall()
|
||||
for row in rows:
|
||||
print(f"\nID: {row[0]}")
|
||||
print(f" COALESCE advice_name: {row[1]}")
|
||||
print(f" surgeryName from JSON: {row[2]}")
|
||||
print(f" activity_definition name: {row[3]}")
|
||||
print(f" activity_id: {row[4]}")
|
||||
|
||||
if not row[1]:
|
||||
print(" WARNING: advice_name is EMPTY!")
|
||||
else:
|
||||
print(" OK: advice_name exists")
|
||||
|
||||
print("\n" + "=" * 80)
|
||||
print("Diagnostic complete")
|
||||
print("=" * 80)
|
||||
|
||||
cursor.close()
|
||||
|
||||
except Exception as e:
|
||||
print(f"ERROR: {e}")
|
||||
import traceback
|
||||
|
||||
traceback.print_exc()
|
||||
finally:
|
||||
if conn:
|
||||
conn.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
check_surgery_advice()
|
||||
Reference in New Issue
Block a user