Data_request / data_structures.py
Rathapoom's picture
Update data_structures.py
cb282b4 verified
raw
history blame
35.3 kB
# data_structures.py
from typing import Dict, List
from dataclasses import dataclass
# Common Templates
COMMON_TEMPLATES = {
"patient_base_fields": {
"HN": "เลขประจำตัวคนไข้ของโรงพยาบาล",
"Patient_Name": "ชื่อคนไข้",
"Age": "อายุ",
"Sex": "เพศ",
"RightName": "สิทธิการรักษาพยาบาล",
"Patient_Type": "ประเภทคนไข้(สิทธิ์)"
},
"opd_base_fields": {
"VisitDate": "วันที่มาโรงพยาบาล",
"VN": "เลขประจำตัวผู้ป่วยนอก",
"PrescriptionNo": "เลขที่ใบยา",
"Clinic": "รหัสคลินิก",
"Clinic_Name": "ชื่อคลินิก",
"Doctor": "รหัสแพทย์",
"Doctor_Name": "ชื่อแพทย์"
}
}
def build_report_fields(*templates: str, additional_fields: dict = None) -> dict:
"""Build report fields from templates and additional fields"""
fields = {}
for template in templates:
fields.update(COMMON_TEMPLATES.get(template, {}))
if additional_fields:
fields.update(additional_fields)
return fields
# Import all your report structures here
# OPD_REPORTS, IPD_REPORTS, PCT_REPORTS, etc.
OPD_REPORTS = {
"appointment": {
"name": "Appointment report",
"description": "รายงานการนัดหมาย",
"filters": ["Clinic", "Doctor", "HN", "Date"],
"fields": build_report_fields("patient_base_fields", additional_fields={
"AppointDateTime": "วันที่นัดหมายมาโรงพยาบาล",
"AppointmentNo": "เลขที่นัดหมายในระบบ",
"PrePatientNo": "เลขประจำตัวคนไข้ของโรงพยาบาล(กรณียังไม่เปิดHN)",
"เหตุผลนัดหมาย_1": "เหตุผลการนัดหมายลำดับที่ 1",
"เหตุผลนัดหมาย_2": "เหตุผลการนัดหมายลำดับที่ 2",
"เหตุผลนัดหมาย_3": "เหตุผลการนัดหมายลำดับที่ 3",
"เหตุผลนัดหมาย_4": "เหตุผลการนัดหมายลำดับที่ 4",
"เหตุผลนัดหมาย_5": "เหตุผลการนัดหมายลำดับที่ 5",
"NurseNote": "บันทึกรายละเอียดพยาบาล",
"Telephone": "เบอร์ติดต่อคนไข้",
"EntryDateTime": "วัดที่สร้างนัดหมาย",
"EntryDate_to_AppointDate": "ระยะเวลารอนัด จากวันที่สร้างนัดถึงวันที่นัดหมายพบแพทย์",
"Last_AppointmentLog": "สถานะบัตรนัดหมายล่าสุด"
})
},
"diagnosis": {
"name": "Diagnosis(ICD) Details report",
"description": "รายงานการวินิจฉัยโรคผู้ป่วยนอก(ICD)",
"filters": ["Clinic", "Doctor", "Diagnosis type", "รหัสโรค", "Date"],
"fields": build_report_fields("patient_base_fields", "opd_base_fields", additional_fields={
"Diagnosis_Type": "ประเภทลำดับโรค",
"ICD_Code": "รหัสโรค (มาตรฐาน ICD10)",
"ICD_Name": "ชื่อโรค (มาตรฐาน ICD10)"
})
},
"diagnosis_top100": {
"name": "Diagnosis Top 100 report",
"description": "รายงาน100อันดับการวินิจฉัยโรคผู้ป่วยนอก(ICD)",
"filters": ["Clinic", "Doctor", "Date"],
"fields": {
"ICD_Code": "รหัสโรค (มาตรฐาน ICD10)",
"ICD_Name": "ชื่อโรค (มาตรฐาน ICD10)",
"VN_Count": "จำนวน VN รวม"
}
},
"visit_today": {
"name": "Visit today report",
"description": "รายงานการเข้ารับบริการผู้ป่วยนอก",
"filters": ["HN", "Date"],
"fields": build_report_fields("patient_base_fields", additional_fields={
"VisitDate": "วันที่มาโรงพยาบาล",
"VN": "เลขประจำตัวผู้ป่วยนอก",
"Visit_Name": "ประเภทการมาโรงพยาบาล",
"InDateTime": "วันเวลาเริ่มต้นการเข้ารับบริการ",
"OutDateTime": "วันเวลาสิ้นสุดการเข้ารับบริการ",
"New_Patient": "ผู้ป่วยใหม่-เก่า",
"ClaimCode": "รหัสการขอ Authentication สปสช"
})
},
"prescription_today": {
"name": "Prescription today report",
"description": "รายงานการเข้ารับบริการผู้ป่วยนอกตามใบยา",
"filters": ["HN", "clinic", "doctor", "Date"],
"fields": build_report_fields("patient_base_fields", "opd_base_fields", additional_fields={
"Visit_Name": "ประเภทการมาโรงพยาบาลตามคลินิก",
"InDateTime": "วันเวลาเริ่มต้นการเข้ารับบริการ",
"OutDateTime": "วันเวลาสิ้นสุดการเข้ารับบริการ",
"New_Patient": "ผู้ป่วยใหม่-เก่า",
"ClaimCode": "รหัสการขอ Authentication สปสช",
"CloseVisit": "ประเภทการปิดใบยา"
})
},
"telemedicine": {
"name": "Tele Medicine report",
"description": "รายงานการเข้ารับบริการผู้ป่วย Tele Medicine",
"filters": ["HN", "Clinic", "Doctor", "Date"],
"fields": build_report_fields("patient_base_fields", "opd_base_fields", additional_fields={
"Visit_Name": "ประเภทการมาโรงพยาบาลตามคลินิก",
"InDateTime": "วันเวลาเริ่มต้นการเข้ารับบริการ",
"OutDateTime": "วันเวลาสิ้นสุดการเข้ารับบริการ",
"New_Patient": "ผู้ป่วยใหม่-เก่า",
"ClaimCode": "รหัสการขอ Authentication สปสช"
})
},
"disease_details": {
"name": "Disease Details report",
"description": "รายงานการลงโรคผู้ป่วยนอก(โดยแพทย์)",
"filters": ["HN", "Clinic", "Doctor", "Date"],
"fields": build_report_fields("patient_base_fields", "opd_base_fields", additional_fields={
"Diagnosis_Type": "ประเภทการวินิจฉัยโรค",
"Disease_Code": "รหัสการวินิจฉัย",
"Disease_Name": "ชื่อการวินิจฉัย"
})
},
"waiting_times": {
"name": "Waiting Times report",
"description": "รายงานระยะเวลารอคอยผู้ป่วยนอก",
"filters": ["HN", "Clinic", "Doctor", "Date"],
"fields": build_report_fields("patient_base_fields", "opd_base_fields", additional_fields={
"Location": "อาคารให้บริการ",
"AppointDateTime": "เวลานัดหมาย",
"Register": "เวลาเปิดเลขประจำตัวผู้ป่วยนอก",
"Prescription_Print": "เวลาปิด VN Slip",
"NurseCounter_Acknowledge": "เวลาพยาบาลรับผู้ป่วย",
"Diag_Rms_Check_In": "เวลารับผู้ป่วยเข้าห้องตรวจ",
"Doctor_Approve_Prescription": "เวลาแพทย์ยืนยันการตรวจและสั่งยา",
"Diag_Rms_Check_Out": "เวลาผู้ป่วยออกจากห้องตรวจ",
"NurseCounter_Release": "เวลาปิดใบยาหรือส่งผู้ป่วยออกจากคลินิก",
"Drug_Acknowledge": "เวลาห้องยารับทราบใบสั่งยา",
"Drug_Ready": "เวลาห้องยาจัดยาเสร็จสิ้น",
"Drug_Check_Out": "เวลาผู้ป่วยรับยา",
"Cashier_Receive": "เวลาออกใบเสร็จ",
"Register_to_Prescription_Print": "ระยะเวลาเปิด VN ถึง ปริ้นใบยา(นาที)",
"Status1": "ตรวจสอบสถานะคนไข้นัดหมายหรือwalkin",
"Wait_Time_Statistics": {
"NurseCounter_to_Diag": "ระยะเวลาพยาบาลรับผู้ป่วยถึงเวลาเข้าห้องตรวจ(นาที)",
"Doctor_Service_Time": "ระยะเวลาที่แพทย์ใช้ในการตรวจ",
"Prescription_to_Release": "ระยะเวลาแพทย์ยืนยันใบสั่งยาถึงผู้ป่วยออกจากคลินิก(นาที)",
"Drug_Service_Time": "ระยะเวลาห้องยารับทราบใบสั่งยาถึงผู้ป่วยรับยา(นาที)"
}
})
}
}
IPD_REPORTS = {
"diagnosis": {
"name": "IPD Diagnosis Details report",
"description": "รายงานการวินิจฉัยโรคผู้ป่วยใน(ICD)",
"filters": ["Ward", "Doctor", "Diagnosis Type", "Icd", "Date"],
"fields": build_report_fields("patient_base_fields", additional_fields={
"AN": "เลขประจำตัวผู้ป่วยใน",
"AdmDateTime": "วันเวลาเข้ารับการรักษาเป็นผู้ป่วยใน",
"DischargeDateTime": "วันเวลาการจำหน่ายผู้ป่วยกลับบ้าน",
"DiagnosisType": "ประเภทการวินิจฉัยโรค",
"ICDCode": "รหัสโรค",
"ICDName": "ชื่อโรค",
"ActiveWardName": "หอผู้ป่วยสุดท้ายก่อนจำหน่าย",
"DoctorName": "แพทย์เจ้าของไข้"
})
},
"admission": {
"name": "IPD Admission report",
"description": "รายงานการเข้ารับบริการผู้ป่วยใน",
"filters": ["Clinic From OPD", "Date"],
"fields": build_report_fields("patient_base_fields", additional_fields={
"AN": "เลขประจำตัวผู้ป่วยใน",
"AdmDateTime": "วันเวลาเข้ารับการรักษาเป็นผู้ป่วยใน",
"FromOPDDoctorName": "แพทย์ผู้ตรวจจากผู้ป่วยนอก",
"FromClinicName": "ตรวจจากคลินิก",
"AdmCodeName": "ประเภทการรับเข้ารับการรักษาเป็นผู้ป่วยใน",
"AdmWard": "หอผู้ป่วยแรกรับ",
"AdmHNBedNo": "เลขเตียงผู้ป่วยแรกรับ",
"ActiveWard": "หอผู้ป่วยปัจจุบัน",
"ActiveHNBedNo": "เลขเตียงผู้ป่วยปัจจุบัน",
"AdmDoctor": "แพทย์รับผู้ป่วยเข้าเป็นผู้ป่วยใน"
})
},
"discharge": {
"name": "IPD Discharge report",
"description": "รายงานการจำหน่ายผู้ป่วยในกลับบ้าน",
"filters": ["Ward", "Date"],
"fields": build_report_fields("patient_base_fields", additional_fields={
"AN": "เลขประจำตัวผู้ป่วยใน",
"AdmDateTime": "วันเวลาเข้ารับการรักษาเป็นผู้ป่วยใน",
"DischargeDateTime": "วันเวลาการจำหน่ายผู้ป่วยกลับบ้าน",
"AdmCode": "ประเภทการรับเข้ารับการรักษาเป็นผู้ป่วยใน",
"DischargeCode": "ประเภทการจำหน่ายผู้ป่วยกลับบ้าน",
"AdmWard": "หอผู้ป่วยแรกรับ",
"AdmHNBedNo": "เลขเตียงผู้ป่วยแรกรับ",
"ActiveWard": "หอผู้ป่วยปัจจุบัน",
"ActiveHNBedNo": "เลขเตียงผู้ป่วยปัจจุบัน",
"AdmDoctor": "แพทย์รับผู้ป่วยเข้าเป็นผู้ป่วยใน",
"DischargeDoctor": "แพทย์จำหน่ายผู้ป่วย",
"Diag": "โรค"
})
},
"drg": {
"name": "DRG report",
"description": "รายงานผู้ป่วยในรูปแบบตามมาตรฐานข้อมูล DRG",
"filters": ["Date"],
"fields": build_report_fields("patient_base_fields", additional_fields={
"AN": "เลขประจำตัวผู้ป่วยใน",
"DOB": "วันเดือนปีเกิดผู้ป่วย",
"DateAdm": "วันที่รับเป็นผู้ป่วยใน",
"TimeAdm": "เวลารับเป็นผู้ป่วยใน",
"DateDsc": "วันที่จำหน่ายผู้ป่วยกลับบ้าน",
"TimeDsc": "เวลาจำหน่ายผู้ป่วยกลับบ้าน",
"Discht": "ประเภทการจำหน่าย",
"Admwt": "น้ำหนักผู้ป่วยแรกรับ",
"PDX": "รหัสการวินิจฉัยโรคหลัก",
"Secondary_Diagnoses": {
**{f"SDX{i}": f"รหัสการวินิจฉัยโรคร่วมลำดับที่ {i}" for i in range(1, 21)}
},
"Procedures": {
**{f"Proc{i}": f"รหัสการทำหัตถการลำดับที่ {i}" for i in range(1, 21)}
},
"DRG_Details": {
"DRG": "DRG Code",
"MDC": "Major Diagnostic Category",
"RW": "Relative Weight",
"AdjRW": "Adjusted Relative Weight",
"LOS": "จำนวนวันนอน",
"ActLOS": "Actual Length of Stay",
"WtLOS": "Weighted Length of Stay",
},
"Additional_Info": {
"Mcode1": "รหัส Morphology 1",
"Mcode2": "รหัส Morphology 2",
"Mcode3": "รหัส Morphology 3",
"ID": "เลขบัตรประจำตัวประชาชน",
"Nation": "สัญชาติ",
"Right_Main": "สิทธิ์หลักประจำผู้ป่วย",
"Right_Adm": "สิทธิ์ที่ใช้ในการรักษาครั้งนี้",
"Province": "รหัสจังหวัด",
"Ward": "รหัสหอผู้ป่วย",
"Department": "รหัสแผนก",
"DischargeStatus": "สถานะการจำหน่าย",
"DoctorMaster": "แพทย์เจ้าของไข้"
}
})
}
}
PCT_TEMPLATES = {
"pct_base_fields": {
"HN": "เลขประจำตัวคนไข้ของโรงพยาบาล",
"AN": "เลขประจำตัวผู้ป่วยใน",
"DateAdm": "วันที่รับเป็นผู้ป่วยใน",
"TimeAdm": "เวลารับเป็นผู้ป่วยใน",
"DateDsc": "วันที่จำหน่ายผู้ป่วยกลับบ้าน",
"TimeDsc": "เวลาจำหน่ายผู้ป่วยกลับบ้าน",
"AdmCode": "ประเภทการรับเข้ารับการรักษาเป็นผู้ป่วยใน",
"RightAdm": "สิทธิ์ที่ใช้ในการรักษาครั้งนี้",
"PDX": "รหัสการวินิจฉัยโรคหลัก",
"SDX1": "รหัสการวินิจฉัยโรคร่วมลำดับที่ 1",
"SDX2": "รหัสการวินิจฉัยโรคร่วมลำดับที่ 2",
"SDX3": "รหัสการวินิจฉัยโรคร่วมลำดับที่ 3",
"SDX4": "รหัสการวินิจฉัยโรคร่วมลำดับที่ 4",
"SDX5": "รหัสการวินิจฉัยโรคร่วมลำดับที่ 5",
"SDX6": "รหัสการวินิจฉัยโรคร่วมลำดับที่ 6",
"ICDCm1": "รหัสการทำหัตถการลำดับที่ 1",
"ICDCm2": "รหัสการทำหัตถการลำดับที่ 2",
"ICDCm3": "รหัสการทำหัตถการลำดับที่ 3",
"AdmDoctor": "แพทย์รับผู้ป่วยเข้าเป็นผู้ป่วยใน",
"DischargeDoctor": "แพทย์จำหน่ายผู้ป่วย",
"DoctorMaster": "แพทย์เจ้าของไข้",
"ActiveWard": "หอผู้ป่วยปัจจุบัน",
"LOS": "จำนวนวันนอน",
"DischargeCode": "สถานะการจำหน่าย",
"DischargeType": "ประเภทการจำหน่าย",
"Age": "อายุ",
"ORDateTime": "วันที่เข้ารับการผ่าตัด"
}
}
# Initialize PCT_REPORTS
PCT_REPORTS = {
"med_sepsis": {
"name": "PCT Med_Sepsis report",
"description": "รายงานระยะเวลาวันนอนรหัสโรคหลัก A40 - A41",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"med_fn": {
"name": "PCT Med_FN",
"description": "รายงานระยะเวลาวันนอนรหัสโรคหลัก D70 และ R509",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"med_upper_gi_bleeding": {
"name": "PCT Med_Upper GI bleeding",
"description": "รายงานระยะเวลาวันนอนรหัสโรคหลัก K922",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"med_vte": {
"name": "PCT Med_VTE",
"description": "รายงานระยะเวลาวันนอนรหัส K645,K550,I676,I81,I80*,I82*",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"med_stroke": {
"name": "PCT Med_Stroke Fast track",
"description": "รายงานระยะเวลาวันนอนรหัสโรค I63-I66",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"surg_lc": {
"name": "PCT Surg_LC",
"description": "รายงานระยะเวลาวันนอนผู้ป่วยทำหัตถการรหัส 5123",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"surg_hernia": {
"name": "PCT Surg_Inguinal Hernia",
"description": "รายงานระยะเวลาวันนอนรหัสโรค K40 ทั้งหมด",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"surg_gastostomy": {
"name": "PCT Surg_Gastostomy",
"description": "รายงานระยะเวลาวันนอนผู้ป่วยทำหัตถการรหัส 4311 และ 4319",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"surg_colostomy": {
"name": "PCT Surg_Colostomy",
"description": "รายงานระยะเวลาวันนอนผู้ป่วยทำหัตถการรหัส 4610-4614, 4603",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"surg_hemorrhoidectomy": {
"name": "PCT Surg_Hemorrhoidectomy",
"description": "รายงานระยะเวลาวันนอนผู้ป่วยทำหัตถการรหัส 4941-4949",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"surg_fistula": {
"name": "PCT Surg_Ligation of Internal Fistula Tract",
"description": "รายงานระยะเวลาวันนอนผู้ป่วยทำหัตถการรหัส 4973",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"surg_fistulotomy": {
"name": "PCT Surg_Fistulotomy",
"description": "รายงานระยะเวลาวันนอนผู้ป่วยทำหัตถการรหัส 4911",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"surg_sphincterotomy": {
"name": "PCT Surg_Lateral Internal Sphincterotomy",
"description": "Phase 2",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"gyne_hysterectomy": {
"name": "PCT Gyne_Radical Hysterectomy",
"description": "Phase 2",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
},
"gyne_laparoscopic": {
"name": "PCT Gyne_Total Laparoscopic Hysterectomy",
"description": "Phase 2",
"filters": ["Date"],
"fields": build_report_fields("pct_base_fields")
}
}
# Define OR base fields from PDF
OR_TEMPLATES = {
"or_base_fields": {
"FacilityRmsNo": "", # ห้องผ่าตัด
"AN/VN": "เลขที่ประจำตัวคนไข้",
"RequestNo": "รหัสเคสการผ่าตัด",
"OperationDateTime": "วันที่ทำการผ่าตัด",
"OpertivePlan": "แพลนการทำหัตถการในห้องผ่าตัด"
}
}
# Define OR Reports structure
OR_REPORTS = {
"transaction": {
"name": "OR Transaction Amount report",
"description": "รายงานการผ่าตัดและค่าใช้จ่ายประจำวัน",
"filters": ["FacilityRms", "Date"],
"fields": {
**OR_TEMPLATES["or_base_fields"],
"HNActivityCode": "หมวดหมู่ค่าใช้จ่าย",
"ChargeDateTime": "วันที่คิดค่าใช้จ่าย",
"HNChargeType": "ประเภทการคิดเงิน",
"ChargeAmt": "จำนวนเงิน"
}
},
"emergency": {
"name": "OR Emergency type report",
"description": "รายงานการผ่าตัดประเภทเร่งด่วนฉุกเฉิน",
"filters": ["FacilityRms", "Date"],
"fields": {
"RequestNo": "รหัสเคสการผ่าตัด",
"HN": "เลขที่ประจำตัวคนไข้โรงพยาบาล",
"FacilityRmsNo": "รหัสประเภทห้องผ่าตัด",
"AppointmentNo": "วันที่นัดหมาย",
"ORConfirmDateTime": "วันที่ยืนยันทำการผ่าตัด",
"AttendDateTime": "หมวดหมู่ค่าใช้จ่าย",
"Surgeon": "แพทย์ผ่าตัด",
"ORCaseType": "ประเภทการผ่าตัด Emergency and Urgency",
"ORClassifiedType": "ประเภทการผ่าตัด Major, Minor",
"TranferTo": "ประเภทจำหน่ายผู้ป่วยออกจากห้องผ่าตัด",
"OperationProcedure": "แพลนการทำหัตถการในห้องผ่าตัด",
"ChargeAN": "เลขประจำตัวผู้ป่วยใน",
"ChargeVN": "เลขประจำตัวผู้ป่วยนอก",
"ChargeVisitDate": "วันที่มาโรงพยาบาล"
}
}
}
STAT_REPORTS = {
"hn_stat_ward": {
"name": "HN stat ward",
"description": "รายงานสถิติคนไข้ในหอผู้ป่วยทั้งหมด",
"filters": ["Ward", "Date"],
"fields": {
"StatDate": "วันที่สถิติ",
"WardName": "หอผู้ป่วย",
"NoBedInventory": "จำนวนเตียงรวม",
"NoBedOccBFW": "จำนวนการครองเตียง",
"NoPatientBFW": "จำนวนคนไข้",
"WellBabyBFW": "",
"NoBedUnAcknowledge": "เตียงที่ยังไม่กดรับเข้า",
"NoPatientAdm": "จำนวนคนไข้รับใหม่",
"NoPatientTransferIN": "จำนวนคนไข้รับเข้าจากหอผู้ป่วยอื่น",
"NoPatientTransferINFromICU": "จำนวนคนไข้รับเข้าจากหอผู้ป่วยวิกฤต",
"NoBedOccNew": "จำนวนเตียงรับใหม่",
"NoBedReserveUseCount": "",
"NoPatientDischarge": "จำนวนคนไข้จำหน่ายออก",
"NoPatientCxlAdm": "จำนวนคนไข้ยกเลิกรับเข้า",
"LengthOfStay": "จำนวนวันนอน",
"NoPatientDead": "จำนวนคนไข้เสียชีวิต",
"NoPatientTransferOUT": "จำนวนคนไข้ส่งต่อไปหอผู้ป่วยอื่น",
"NoPatientTransferOUTToICU": "จำนวนคนไข้ส่งต่อไปหอผู้ป่วยวิกฤต",
"NoBedReturn": "จำนวนการคืนเตียง",
"NoBedOccCF": "",
"NoPatientAdmER": "จำนวนคนไข้รับเข้าจากแผนกฉุกเฉิน",
"NoPatientAdmOPD": "จำนวนคนไข้รับเข้าจากแผนกผู้ป่วยนอก",
"NoPatientTransferINFromCCU": "จำนวนคนไข้รับเข้าจากหอผู้ป่วยวิกฤตหัวใจ"
}
},
"hn_stat_xray": {
"name": "HN stat x-ray",
"description": "รายงานสถิติจำนวนการส่งตรวจทางรังสีวินิจฉัย",
"filters": ["HNStat type", "Date"],
"fields": {
"StatDate": "วันที่สถิติ",
"FacilityRmsName": "รหัสประเภทกลุ่ม",
"XrayName": "ชื่อการตรวจทางรังสี",
"HNStatXrayCountTypName": "ประเภทข้อมูลสถิติ",
"HNStatName1": "คำอธิบายประเภทข้อมูลสถิติ",
"Counter": "จำนวนการตรวจ",
"ExposureQty": "",
"TotalUsageQty": "",
"WasteQty": "",
"Amt": "จำนวนเงินรวม",
"CounterFemale": "จำนวนการตรวจเพศหญิง",
"CounterMale": "จำนวนการตรวจเพศชาย"
}
}
}
SUMMARY_REPORTS = {
"appointment_summary": {
"name": "Appointment summary by clinic",
"description": "รายงานจำนวนการนัดหมายแต่ละคลินิกรายเดือน",
"filters": ["Clinic", "Date"],
"fields": {
"AppointCount": "จำนวนการนัดหมายในแต่ละคลินิก"
}
},
"diagnosis_summary": {
"name": "Diagnosis(ICD) Summary",
"description": "รายงานอันดับการวินิจฉัยโรค(ICD10)",
"filters": ["Date"],
"fields": {
"DiagnosisCount": "จำนวนการวินิจฉัยโรค"
}
},
"visit_today_summary": {
"name": "Visit today Summary",
"description": "รายงานสถิติการเข้ารับบริการผู้ป่วยนอก",
"filters": ["Date"],
"fields": {
"VisitCount": "จำนวนการเข้ารับบริการ"
}
},
"visit_by_clinic": {
"name": "Visit summary by clinic",
"description": "รายงานสถิติการเข้ารับบริการผู้ป่วยนอกแยกตามคลินิก",
"filters": ["Clinic", "Date"],
"fields": {
"VisitCountByClinic": "จำนวนการเข้ารับบริการแยกตามคลินิก"
}
},
"telemedicine_by_clinic": {
"name": "Tele Medicine Summary by clinic",
"description": "รายงานสถิติการเข้ารับบริการผู้ป่วยTele medicineแยกตามคลินิก",
"filters": ["Clinic", "Date"],
"fields": {
"TeleMedVisitCount": "จำนวนการเข้ารับบริการ Telemedicine"
}
},
"doctor_performance": {
"name": "Doctor performance Summary",
"description": "รายงานสถิติการออกตรวจแพทย์",
"filters": ["Doctor", "Date"],
"fields": {
"DoctorPerformanceCount": "จำนวนการออกตรวจ"
}
},
"opd_treatment": {
"name": "OPD by treatment summary",
"description": "รายงานสถิติการให้บริการการรักษาผู้ป่วยนอก",
"filters": ["Date"],
"fields": {
"TreatmentCount": "จำนวนการให้บริการการรักษา"
}
}
}
# Define Other Reports structure
OTHER_REPORTS = {
"revenue": {
"name": "Revenue Report",
"description": "รายงานข้อมูลรายได้",
"filters": ["Date"],
"fields": {
"RevenueData": "ข้อมูลรายได้"
}
},
"laboratory": {
"name": "Laboratory Report",
"description": "รายงานการส่งตรวจทางห้องปฏิบัติการ",
"filters": ["Date"],
"fields": {
"LabData": "ข้อมูลการส่งตรวจทางห้องปฏิบัติการ"
}
},
"radiology": {
"name": "Radiology Report",
"description": "รายงานการส่งตรวจทางรังสีวินิจฉัย",
"filters": ["Date"],
"fields": {
"RadiologyData": "ข้อมูลการส่งตรวจทางรังสีวินิจฉัย"
}
},
"medicine": {
"name": "Medicine Report",
"description": "รายงานการจ่ายยา",
"filters": ["Date"],
"fields": {
"MedicineData": "ข้อมูลการจ่ายยา"
}
},
"pt": {
"name": "PT Report",
"description": "รายงานการให้บริการทางกายภาพบำบัด",
"filters": ["Date"],
"fields": {
"PTData": "ข้อมูลการให้บริการทางกายภาพบำบัด"
}
}
}
WEB_DATA_REPORTS = {
"OPD": OPD_REPORTS,
"IPD": IPD_REPORTS,
"PCT": PCT_REPORTS,
"OR": OR_REPORTS,
"STAT": STAT_REPORTS,
"SUMMARY": SUMMARY_REPORTS,
"OTHER": OTHER_REPORTS
}