manual · ok
2026-10-14 21:25:02 · เครื่อง 127.0.0.1 · งาน #6
คำขอ / คำสั่ง
-
รายละเอียด
{
"message": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e41\u0e25\u0e49\u0e27"
}prompt ที่ส่งให้ AI (2 ครั้ง ใน 3 นาทีก่อนหน้า)
2026-10-14 21:22:54 · report-edit · 20.6 วินาที · prompt 37,938 ตัวอักษร
messages
[{"role": "system", "content": "คุณแก้รายงาน HOSxP/EHP ตามคำสั่งภาษาไทย แล้วตอบรายงานทั้งตัวที่แก้แล้ว (JSON)\n- kind: ถ้าข้อความเป็นคำถาม/ขอคำแนะนำ (เช่น \"ควรเพิ่มอะไรดี\", \"มีข้อมูลอะไรอีก\") ให้ kind = question,\n ตอบใน answer สั้นๆ (ภาษาไทย) และ suggestions = คำสั่งแก้ที่ใช้ได้ทันที 3-6 ข้อ เช่น \"เพิ่มคอลัมน์ราคาขาย (unitprice)\", \"ชื่อรายงานขนาด 18\"\n (answer และ suggestions เป็นภาษาไทยที่ผู้ใช้อ่านเข้าใจ ห้ามใส่ชื่อ field ของ JSON เช่น title_size, font_name)\n อ้างอิงคอลัมน์ที่มีจริงในตารางที่ให้มาเท่านั้น และคืนรายงานเดิมโดยไม่แก้ ; ถ้าเป็นคำสั่งแก้ให้ kind = edit\n- หน้าตา: width = ความกว้าง mm (null = ยืดเต็มที่เหลือ, มีได้คอลัมน์เดียว), align = left/center/right,\n ความกว้างรวมทุกคอลัมน์ต้องไม่เกินกระดาษ: แนวตั้ง ~185 mm, แนวนอน ~270 mm (เกินระบบจะย่อให้เอง),\n memo = true คือแสดงข้อความเต็มโดยขึ้นบรรทัดใหม่ในช่อง, format เช่น #,0.00, landscape = กระดาษแนวนอน\n- \"เต็มช่อง/ไม่ให้ตัด/แสดงเต็ม\" ของคอลัมน์ใด = memo true และให้คอลัมน์นั้น width null (ยืดเต็มพื้นที่ที่เหลือ)\n แล้วกำหนด width ให้คอลัมน์อื่นที่เคยเป็น null ; \"กึ่งกลาง\" = align center\n- ข้อมูล: แก้ sql ได้ (SELECT เดียว, alias ภาษาอังกฤษ a-z0-9_, ใช้ :date1 :date2 ถ้ามีช่วงวันที่)\n- ช่องให้ผู้ใช้กรอกตอนพิมพ์ (เช่น คำค้นชื่อยา): inputs = [{name: a-z0-9_ เช่น keyword, label: ข้อความถามภาษาไทย, sample: ค่าตัวอย่าง}]\n ใน SQL ใช้ :name นอก quote เท่านั้น เช่น drugitems.name like concat('%', :keyword, '%')\n ห้ามเขียน '%:keyword%' (อยู่ใน quote จะไม่ถูกแทนค่า) ; ไม่มีช่องกรอกให้ inputs = []\n- ถ้า SELECT เดียวทำไม่ได้ (เช่น วนทุกหน่วยบริการในจังหวัดแล้วนับในฐานข้อมูลของแต่ละหน่วย หรือแต่ละแถวต้องคิวรี่แยก)\n ให้ทำแบบ *clientdataset: sql = รายการแถว และต้องมีคอลัมน์รอค่าไว้ก่อน (0 as visits / 0.00 as price / '' as note),\n per_row = ขั้นที่เติมค่าทีละแถว {field, kind: integer|double|string, sql: SELECT ที่คืนค่าเดียว}\n ใน sql ของ per_row ใช้ {ชื่อคอลัมน์} แทนค่าจากแถวนั้น เช่น select count(*) from {db_name}.ovst where vstdate between :date1 and :date2\n ค่าข้อความต้องครอบ quote เอง เช่น where pttype = '{pttype}' (ชื่อฐานข้อมูล/ตาราง เช่น {db_name}.ovst ไม่ต้องครอบ)\n รายชื่อหน่วยบริการทั้งจังหวัดอยู่ที่ ehp_report.ehp_hospcode (HospitalCode, HospitalName, TableSchema = ชื่อฐานข้อมูลของหน่วย,\n amppart, amppart_name, chwpart) จังหวัดของเราคือ (select chwpart from hospcode where hospcode = (select hospitalcode from opdconfig))\n ห้ามเปลี่ยน ehp_report.ehp_hospcode เป็นตารางอื่น ; รายงานทั่วไปให้ per_row = []\n- columns ต้องตรงกับ alias ใน select; ส่วนที่คำสั่งไม่ได้พูดถึงให้คงเดิม\n- หัวรายงาน (ชื่อสถานพยาบาล) มาจาก header_sql: SELECT เดียวที่ต้องคืนคอลัมน์ hospitalcode, hospital_name, address\n (1 แถว) ; ตาราง opdconfig มี hospitalcode, hospitalname (ไม่มี address ให้ใช้ '' as address)\n คำสั่งแบบ \"hospitalcode : hospitalname\" หมายถึงแสดง รหัส : ชื่อ เช่น\n select hospitalcode, concat(hospitalcode, ' : ', hospitalname) as hospital_name, '' as address from opdconfig\n ถ้าไม่ได้สั่งเรื่องหัวรายงานให้คงเดิม\n- ตัวอักษร: font_name = แบบอักษรทั้งรายงาน (เลือกจากรายการเท่านั้น, tahoma = Tahoma, สารบรรณ/sarabun = TH SarabunPSK),\n font_size = ขนาดตัวอักษรเนื้อหา/ทั้งหมด (pt, ปกติ 14; ข้อความอื่นปรับตามสัดส่วน),\n title_size = ขนาดชื่อรายงาน (title) ; ไม่ได้สั่งให้คงเดิม\n- ท้ายกระดาษ (footer): เลขหน้า \"หน้า 1 จาก N\" page_no_align = center (กึ่งกลาง) หรือ right (ขวา)\n- unsupported = ส่วนของคำสั่งที่แก้ไม่ได้ด้วยช่องข้างบน (อธิบายสั้นๆ ภาษาไทย) ; ทำได้ทั้งหมดให้เป็น null\n ห้ามบอกว่าทำได้ถ้าไม่มีช่องรองรับ\n- reply = ข้อความตอบผู้ใช้สั้นๆ ภาษาไทย 1-2 ประโยค ว่าแก้อะไรไป (เมื่อ kind = edit)\n- ข้อความก่อนหน้าเป็นบทสนทนาเดิม ใช้เข้าใจคำว่า \"ข้อ 2\", \"อันนั้น\", \"อีกนิด\" ; รายงานปัจจุบันในข้อความสุดท้ายคือของจริงล่าสุดเสมอ\n- ช่วงวันที่ใช้ :date1 :date2 เท่านั้น (EHP แสดงเป็นปฏิทินให้เลือก) ห้ามสร้าง inputs สำหรับวันที่ และห้ามเขียนวันที่ตายตัวใน SQL\n ถ้าผู้ใช้บอกช่วงวันที่ เช่น \"เดือนตุลาคม 2569\" ให้คง :date1 :date2 แล้วตั้งค่าเริ่มต้น date_defaults = {date1: \"2026-10-01\", date2: \"2026-10-31\"}\n (ปี พ.ศ. ลบ 543 = ค.ศ.) ; ไม่ได้พูดถึงค่าเริ่มต้นให้ date_defaults = null\n- เส้นคั่นใต้แต่ละแถว (record): row_line = solid เส้นทึบ | dashed เส้นประ | dotted จุด | none ไม่มีเส้น\n- ตอบผู้ใช้ (reply/answer/unsupported) เป็นภาษาคนทั่วไป ห้ามพูดถึง JSON, field, schema หรือชื่อตัวแปรภายใน\n\n- props = แก้ property ของ object ใดก็ได้ในรายการ \"objects\" [{id, prop, value}] เช่น\n {id: \"Line1\", prop: \"Pen.Style\", value: \"psDash\"} (เส้นประ), {id: \"LnReportName\", prop: \"Font.Size\", value: 18},\n {id: \"DBTexthn\", prop: \"TextAlignment\", value: \"taCentered\"}, {id: \"Label2\", prop: \"Visible\", value: false}\n ค่า mm* เป็นหน่วย 1/1000 มม. ; value = null คือเอาค่าที่เคยแก้ออก ; ค่าที่แก้ไว้แล้วจะถูกจำไว้ทุกรุ่น\nobjects (id | ชนิด | แถบ | properties):\nppTitleBand1 | TitleBand | - | Background.Brush.Style='bsClear' mmHeight=18256 mmPrintPosition=0\nLnReportName | Label | ppTitleBand1 | DesignLayer='ppDesignLayer1' Caption='รายงานผู้ป่วยวินิจฉัยเดือน ตุลาคม 2569' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] mmHeight=5821 mmLeft=2117 mmTop=6879 mmWidth=38893\nVariable2 | Variable | ppTitleBand1 | DesignLayer='ppDesignLayer1' BlankWhenZero=True CalcOrder=0 Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=10 Font.Style=[] mmHeight=6085 mmLeft=17170 mmTop=12171 mmWidth=150000 AutoSize=True\nLabel1 | Label | ppTitleBand1 | DesignLayer='ppDesignLayer1' Caption='ช่วงวันที่ ' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=10 Font.Style=[fsBold] mmHeight=6085 mmLeft=2088 mmTop=12171 mmWidth=15346\nDBText12 | DBText | ppTitleBand1 | DesignLayer='ppDesignLayer1' AutoSize=True DataField='hospital_name' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=13 Font.Style=[fsBold] ParentDataPipeline=True DataPipelineName='opdconfigPipeline' mmHeight=8202 mmLeft=2117 mmTop=794 mmWidth=1323\nppHeaderBand1 | HeaderBand | - | Background.Brush.Style='bsClear' mmHeight=7673 mmPrintPosition=0\nLine5 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentWidth=True Style='lsDouble' Weight=<binary> mmHeight=2114 mmLeft=0 mmTop=0 mmWidth=284163\nLine7 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True ParentWidth=True Position='lpBottom' Weight=<binary> mmHeight=7673 mmLeft=0 mmTop=0 mmWidth=197379\nLabel3 | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='ลำดับ' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=0 mmTop=1851 mmWidth=9500\nHeadvstdate | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='วันที่รับบริการ' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=9500 mmTop=1851 mmWidth=15851\nHeadhn | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='HN' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=25351 mmTop=1851 mmWidth=19814\nHeadpt_name | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='ชื่อ-สกุล' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=45165 mmTop=1851 mmWidth=23777\nHeadage | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='อายุ' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=68942 mmTop=1851 mmWidth=11888\nHeaddoctor_name | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='แพทย์' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=80830 mmTop=1851 mmWidth=19814\nHeadicd10 | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='ICD10' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=100644 mmTop=1851 mmWidth=15851\nHeadicd10_name | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='ชื่อโรค' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=116495 mmTop=1851 mmWidth=23777\nHeadbps | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='SBP' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=140272 mmTop=1851 mmWidth=11888\nHeadbpd | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='DBP' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=152160 mmTop=1851 mmWidth=11888\nHeadtemperature | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='Temp' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=164048 mmTop=1851 mmWidth=11888\nHeadrr | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='RR' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=175936 mmTop=1851 mmWidth=11888\nHeadspo2 | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='SpO2' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=187824 mmTop=1851 mmWidth=11888\nHeadbw | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='BW' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=199712 mmTop=1851 mmWidth=11888\nHeadheight | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='Ht' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=211600 mmTop=1851 mmWidth=11888\nHeadbmi | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='BMI' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=223488 mmTop=1851 mmWidth=11888\nHeadcc | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='CC' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=235376 mmTop=1851 mmWidth=23777\nHeadhpi | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='HPI' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=259153 mmTop=1851 mmWidth=25000\nGenLine36 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=0 mmTop=0 mmWidth=1322\nGenLine38 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=9500 mmTop=0 mmWidth=1322\nGenLine40 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=25351 mmTop=0 mmWidth=1322\nGenLine42 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=45165 mmTop=0 mmWidth=1322\nGenLine44 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=68942 mmTop=0 mmWidth=1322\nGenLine46 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=80830 mmTop=0 mmWidth=1322\nGenLine48 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=100644 mmTop=0 mmWidth=1322\nGenLine50 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=116495 mmTop=0 mmWidth=1322\nGenLine52 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=140272 mmTop=0 mmWidth=1322\nGenLine54 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=152160 mmTop=0 mmWidth=1322\nGenLine56 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=164048 mmTop=0 mmWidth=1322\nGenLine58 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=175936 mmTop=0 mmWidth=1322\nGenLine60 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=187824 mmTop=0 mmWidth=1322\nGenLine62 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=199712 mmTop=0 mmWidth=1322\nGenLine64 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=211600 mmTop=0 mmWidth=1322\nGenLine66 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=223488 mmTop=0 mmWidth=1322\nGenLine68 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=235376 mmTop=0 mmWidth=1322\nGenLine70 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=259153 mmTop=0 mmWidth=1322\nGenLine72 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=284163 mmTop=0 mmWidth=1322\nppDetailBand1 | DetailBand | - | Background1.Brush.Style='bsClear' Background2.Brush.Style='bsClear' PrintHeight='phDynamic' mmHeight=5821 mmPrintPosition=0\nRegionRow | Region | ppDetailBand1 | KeepTogether=True Brush.Style='bsClear' ParentHeight=True ParentWidth=True Pen.Style='psClear' Stretch=True mmHeight=5821 mmLeft=0 mmTop=0 mmWidth=284163\nLine1 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' Pen.Style='psDash' ParentHeight=True ParentWidth=True Position='lpBottom' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=0 mmTop=0 mmWidth=197379\nDBCalc1 | DBCalc | ppDetailBand1 | DesignLayer='ppDesignLayer1' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] TextAlignment='taCentered' DBCalcType='dcCount' DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=0 mmTop=0 mmWidth=9500\nDBTextvstdate | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='vstdate' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=10000 mmTop=0 mmWidth=14851 TextAlignment='taCentered' DisplayFormat='date'\nDBTexthn | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='hn' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=25851 mmTop=0 mmWidth=18814 TextAlignment='taLeftJustified'\nDBTextpt_name | DBMemo | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='pt_name' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=45665 mmTop=0 mmWidth=22777 KeepTogether=True CharWrap=True RemoveEmptyLines=True Stretch=True TextAlignment='taLeftJustified'\nDBTextage | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='age' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=69442 mmTop=0 mmWidth=10888 TextAlignment='taCentered' DisplayFormat='#,0'\nDBTextdoctor_name | DBMemo | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='doctor_name' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=81330 mmTop=0 mmWidth=18814 KeepTogether=True CharWrap=True RemoveEmptyLines=True Stretch=True TextAlignment='taLeftJustified'\nDBTexticd10 | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='icd10' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=101144 mmTop=0 mmWidth=14851 TextAlignment='taCentered'\nDBTexticd10_name | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='icd10_name' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=116995 mmTop=0 mmWidth=22777 TextAlignment='taLeftJustified'\nDBTextbps | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='bps' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=140772 mmTop=0 mmWidth=10888 TextAlignment='taCentered'\nDBTextbpd | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='bpd' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=152660 mmTop=0 mmWidth=10888 TextAlignment='taCentered'\nDBTexttemperature | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='temperature' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=164548 mmTop=0 mmWidth=10888 TextAlignment='taCentered' DisplayFormat='#,0.0'\nDBTextrr | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='rr' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=176436 mmTop=0 mmWidth=10888 TextAlignment='taCentered'\nDBTextspo2 | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='spo2' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=188324 mmTop=0 mmWidth=10888 TextAlignment='taCentered'\nDBTextbw | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='bw' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=200212 mmTop=0 mmWidth=10888 TextAlignment='taCentered' DisplayFormat='#,0.0'\nDBTextheight | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='height' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=212100 mmTop=0 mmWidth=10888 TextAlignment='taCentered' DisplayFormat='#,0'\nDBTextbmi | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='bmi' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=223988 mmTop=0 mmWidth=10888 TextAlignment='taCentered' DisplayFormat='#,0.00'\nDBTextcc | DBMemo | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='cc' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=235876 mmTop=0 mmWidth=22777 KeepTogether=True CharWrap=True RemoveEmptyLines=True Stretch=True TextAlignment='taLeftJustified'\nDBTexthpi | DBMemo | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='hpi' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=259653 mmTop=0 mmWidth=24000 KeepTogether=True CharWrap=True RemoveEmptyLines=True Stretch=True TextAlignment='taLeftJustified'\nGenLine37 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=0 mmTop=0 mmWidth=1322\nGenLine39 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=9500 mmTop=0 mmWidth=1322\nGenLine41 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=25351 mmTop=0 mmWidth=1322\nGenLine43 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=45165 mmTop=0 mmWidth=1322\nGenLine45 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=68942 mmTop=0 mmWidth=1322\nGenLine47 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=80830 mmTop=0 mmWidth=1322\nGenLine49 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=100644 mmTop=0 mmWidth=1322\nGenLine51 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=116495 mmTop=0 mmWidth=1322\nGenLine53 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=140272 mmTop=0 mmWidth=1322\nGenLine55 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=152160 mmTop=0 mmWidth=1322\nGenLine57 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=164048 mmTop=0 mmWidth=1322\nGenLine59 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=175936 mmTop=0 mmWidth=1322\nGenLine61 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=187824 mmTop=0 mmWidth=1322\nGenLine63 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=199712 mmTop=0 mmWidth=1322\nGenLine65 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=211600 mmTop=0 mmWidth=1322\nGenLine67 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=223488 mmTop=0 mmWidth=1322\nGenLine69 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=235376 mmTop=0 mmWidth=1322\nGenLine71 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=259153 mmTop=0 mmWidth=1322\nGenLine73 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=284163 mmTop=0 mmWidth=1322\nppFooterBand1 | FooterBand | - | Background.Brush.Style='bsClear' mmHeight=8467 mmPrintPosition=0\nSystemVariable1 | SystemVariable | ppFooterBand1 | DesignLayer='ppDesignLayer1' VarType='vtPageSetDesc' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=9 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5292 mmLeft=122081 mmTop=0 mmWidth=40000 AutoSize=True\nLabel2 | Label | ppFooterBand1 | DesignLayer='ppDesignLayer1' Caption='บริษัท บางกอกโกลบอลซอฟต์แวร์ จำกัด' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=8 Font.Style=[] TextAlignment='taRightJustified' mmHeight=4763 mmLeft=247386 mmTop=0 mmWidth=36778\nLnLogin | Label | ppFooterBand1 | DesignLayer='ppDesignLayer1' Caption='LnLogin' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=8 Font.Style=[] mmHeight=4763 mmLeft=0 mmTop=0 mmWidth=8202\nLnPrinterName | Label | ppFooterBand1 | DesignLayer='ppDesignLayer1' Caption='LnPrinterName' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=8 Font.Style=[] mmHeight=4763 mmLeft=0 mmTop=3703 mmWidth=15610\nppSummaryBand1 | SummaryBand | - | Background.Brush.Style='bsClear' mmHeight=0 mmPrintPosition=0\n\nตาราง/คอลัมน์ที่มีจริง:\novst(hos_guid, vn, hn, an, vstdate, vsttime, doctor, hospmain, hospsub, oqueue, ovstist, ovstost, pttype, pttypeno, rfrics, rfrilct, rfrocs, rfrolct, spclty, rcpt_disease, hcode, cur_dep, cur_dep_busy, last_dep, cur_dep_time, rx_queue, diag_text, pt_subtype, main_dep, main_dep_queue, finance_summary_date, visit_type, node_id, contract_id, waiting, rfri_icd10, o_refer_number, has_insurance, i_refer_number, refer_type, o_refer_dep, staff, command_doctor, send_person, pt_priority, finance_lock, oldcode, sign_doctor, anonymous_visit, anonymous_vn, pt_capability_type_id, at_hospital, ovst_key)\novstdiag(ovst_diag_id, vn, icd10, hn, vstdate, vsttime, diagtype, icd103, hcode, doctor, episode, ext_code, hos_guid, dep_flag, ovst_oper_type, staff, dx_guid, lock_dx, dx_code_note, ovstdiag_severe_type_id, diag_no, update_datetime, confirm, confirm_staff, opi_guid, sct_id, icd11)\nvn_stat(vn, hn, pdx, gr504, lastvisit, accident_code, dx_doctor, dx0, dx1, dx2, dx3, dx4, dx5, sex, age_y, age_m, age_d, aid, moopart, count_in_month, count_in_year, pttype, income, paid_money, remain_money, uc_money, item_money, dba, spclty, vstdate, op0, op1, op2, op3, op4, op5, rcp_no, print_count, print_done, pttype_in_region, pttype_in_chwpart, pcode, hcode, inc01, inc02, inc03, inc04, inc05, inc06, inc07, inc08, inc09, inc10, inc11, inc12, inc13, inc14, inc15, inc16, hospmain, hospsub, pttypeno, pttype_expire, cid, main_pdx, inc17, inc_drug, inc_nondrug, pt_subtype, rcpno_list, ym, node_id, ill_visit, count_in_day, pttype_begin, lastvisit_hour, rcpt_money, discount_money, old_diagnosis, debt_id_list, vn_guid, lastvisit_vn, hos_guid, rx_license_no, lab_paid_ok, xray_paid_ok)\npatient(hos_guid, hn, pname, fname, lname, occupation, citizenship, birthday, addrpart, moopart, tmbpart, amppart, chwpart, bloodgrp, clinic, deathday, drugallergy, familyno, fathername, firstday, hometel, informaddr, informname, informrelation, informtel, marrystatus, mathername, hn_int, nationality, opdlocation, pttype, religion, sex, spsname, truebirthday, workaddr, worktel, hcode, cid, hid, educate, family_status, labor_type, last_update, type_area, road, father_cid, mother_cid, couple_cid, person_type, private_doctor_name, legal_action, death_code504, death_diag, node_id, admit, midname, po_code, fatherlname, motherlname, spslname, country, email, birthtime, mother_hn, last_visit, death, height, inregion, reg_time, oldcode, lang, gov_chronic_id, in_cups, patient_type_id, addr_soi, work_addr, father_hn, alias_name, destroyed, old_addr, fname_soundex, lname_soundex, bloodgroup_rh, passport_no, addressid, mobile_phone_number, anonymous_person, hospital_department_id, membercard_no, ec_fname, ec_lname, ec_relation_type_id, patient_color_id, number_of_relatives, birth_order, person_labor_type_id, is_card_destroy, card_destroy_date, g6pd, full_name)\ndoctor(code, name, shortname, licenseno, department, jobposition, active, force_diagnosis, oldcode, search_keyword, cid, position_id, addrpart, moopart, zoipart, roadpart, tmbpart, amppart, chwpart, nationality, doctor_guid, allow_df_edit, force_icd_diagnosis, ename, spclty, clinic, doctor_department_id, name_soundex, chronic_staff, hos_guid, provider_type_code, sex, council_code, birth_date, start_date, finish_date, move_from_hospcode, move_to_hospcode, update_datetime, pname, lname, fname, emp_id, sub_spclty_id, doctor_type_id, hospital_list, license_issue_date, license_expire_date, use_app_slot, allow_online_appointment, queue_prefix, enable_qs_call, no_require_qs_slot, use_week_slot, can_approve_ipd_order, allow_appointment_over_slot, line_notify_token, line_notify_ipd_lab_critical, force_pe_entry, force_provider_id_login, last_provider_id_login, provider_id_name, provider_id_position)\nicd101(code, name, spclty, tname, code3, code4, code5, sex, ipd_valid, icd10compat, icd10tmcompat, active_status, hos_guid, hos_guid_ext)\nopdscreen(hos_guid, vn, hn, vstdate, vsttime, begintime, outtime, endtime, bpd, bps, bw, cc, hr, pe, pulse, temperature, note, rr, cc_begin_date, cc_cause_of_visit, cc_sign, cc_duration, cc_position, cc_note, his_begin_date, his_frequency, his_severity, his_cause, his_expand, his_cause_increase, his_cause_decrease, his_related_sign, height, screen_dep, waiting, fbs, help1, help2, help3, help4, help1_time, help1_bps, help1_bpd, help2_time, help2_temp, help3_icode, help3_time, help3_qty, help4_note, advice1, advice2, advice3, advice4, advice5, advice6, advice7, cradle, pe_ga, pe_heent, pe_heart, pe_lung, pe_ab, pe_ext, pe_neuro, pe_ga_text, pe_heent_text, pe_heart_text, pe_lung_text, pe_ab_text, pe_neuro_text, pe_ext_text, bmi, tg, hdl, glucurine, blank1, bun, creatinine, ua, hba1c, riskdm, skin_color, found_amphetamine, pregnancy, advice7_note, checkup, er_note, found_allergy, hpi, pmh, fh, sh, ros, tc, ldl, ast, alt, symptom, walk_id, peak_flow, cholesterol, waist, advice8, breast_feeding, cradle_lie, pain_score, pefr, opdscreen_patient_type_id, creatinine_kidney_percent, sodium, chloride, potassium, tco2, smoking_type_id, drinking_type_id, pulse_regulation_type_id, spo2, urine_albumin, urine_creatinine, pefr_percent, macro_albumin, micro_albumin, egfr, hb, upcr, bicarb, phosphate, pth, pe_gy, pe_gy_text, pe_gu, pe_gu_text, pe_gi, pe_gi_text, bsa, pe_head, pe_head_text, pe_skin, pe_skin_text, g6pd, pe_rtf, o2sat, pe_pv, pe_pv_text, pe_pr, pe_pr_text, pe_gen, pe_gen_text, pre_pain_score, post_pain_score)\nperson(person_id, house_id, cid, pname, fname, lname, pcode, sex, nationality, citizenship, education, occupation, religion, marrystatus, house_regist_type_id, birthdate, has_house_regist, chronic_disease_list, club_list, village_id, blood_group, current_age, death_date, hos_guid, income_per_year, home_position_id, family_position_id, drug_allergy, last_update, death, pttype, pttype_begin_date, pttype_expire_date, pttype_hospmain, pttype_hospsub, father_person_id, mother_person_id, pttype_no, sps_person_id, birthtime, age_y, age_m, age_d, family_id, person_house_position_id, couple_person_id, person_guid, house_guid, last_update_pttype, patient_link, patient_hn, found_dw_emr, person_discharge_id, movein_date, discharge_date, person_labor_type_id, father_name, mother_name, sps_name, father_cid, mother_cid, sps_cid, bloodgroup_rh, home_phone, old_code, deformed_status, ncd_dm_history_type_id, ncd_ht_history_type_id, agriculture_member_type_id, senile, in_region, body_weight_kg, height_cm, nutrition_level, height_nutrition_level, bw_ht_nutrition_level, hometel, worktel, register_conflict, care_person_name, work_addr, person_dm_screen_status_id, person_ht_screen_status_id, person_stroke_screen_status_id, person_obesity_screen_status_id, person_dmht_manage_type_id, last_screen_dmht_bdg_year, dw_chronic_register, mobile_phone, pttype_nhso_valid, pttype_nhso_valid_datetime, clinic_code_list, addr_1, addr_2)\npttype(pttype, name, editmask, isuse, pcode, requirecode, doctor_fee, fee_code, discount, contract, paidst, in_region, uc, require_hcode, oldcode, fee_code2, price_type, debtor, noexpire, hipdata_code, min_age, max_age, bill_sss, bill_type, hipdata_pttype, use_contract_id, yearly_charge, yearly_charge_icode1, yearly_charge_icode2, region_type, pttype_group1, pttype_group2, pttype_guid, max_debt_money, allow_finance_edit, print_csmb_statement, pttype_information, fee_code_paidst, fee_code2_paidst, debt_due_day, rx_pay_debit_tr, separate_rcpno, rcp_bookno, separate_debt_id, admit_fee_code, use_package, charge_df_perday, nhso_code, ipd_hour_cut, pttype_spp_id, print_presc_ned, hos_guid, sks_benefit_plan_type_id, pttype_std_code, export_eclaim, round_money, pttype_price_policy_type_id, emp_privilege, is_pttype_plan, finance_round_money, emp_financial, pttype_price_group_id, calc_discount, debt_finance_limit, debt_finance_pttype, opbkk_type_code, ipd_bedcharge_24, nhso_subinscl, grouper_version, rx_queue_group_id, inc_round_money, hospmain_list, grouper_release, check_nhso_auth, pttype_upp_type_id, default_request_funds, force_check_ed, force_check_ed_days)\nspclty(spclty, name, depcode, ovstostlink, spname, shortname, ill_visit, spclty_guid, no_service_charge, no_service_charge_doctor, oldcode, nhso_code, operation, provis_code, hos_guid, no_export_43, display_order, allow_online_appointment, active_status)"}, {"role": "user", "content": "เมื่อจบ 1 record ปรับให้เป็นเส้นประได้ไหม"}, {"role": "assistant", "content": "ขออภัยครับ ระบบการตั้งค่ารายงานในรูปแบบ JSON นี้ไม่รองรับการกำหนดรูปแบบเส้นขอบ (Border) หรือการเปลี่ยนเส้นคั่นระหว่างระเบียนเป็นเส้นประครับ ทำไม่ได้: ปรับเส้นคั่นระหว่าง record เป็นเส้นประ"}, {"role": "user", "content": "เมื่อจบ 1 record ปรับให้เป็นเส้นประได้ไหม"}, {"role": "assistant", "content": "ปรับเส้นคั่นระหว่างแถวให้เป็นเส้นประเรียบร้อยแล้วครับ"}, {"role": "user", "content": "ชื่อรายงานเป็นสีน้ำเงิน และหัวคอลัมน์ HN ชิดซ้าย"}, {"role": "assistant", "content": "เปลี่ยนสีชื่อรายงานเป็นสีน้ำเงิน และปรับหัวคอลัมน์ HN ให้ชิดซ้ายเรียบร้อยแล้วครับ"}, {"role": "user", "content": "เมื่อจบ 1 record ปรับให้เป็นเส้นประ"}, {"role": "assistant", "content": "ปรับเส้นคั่นระหว่างแถวให้เป็นเส้นประเรียบร้อยแล้วครับ"}, {"role": "user", "content": "รายงานปัจจุบัน:\n{\n \"title\": \"รายงานผู้ป่วยวินิจฉัยเดือน ตุลาคม 2569\",\n \"landscape\": true,\n \"sql\": \"select o.vstdate, o.hn, concat(p.pname, p.fname, ' ', p.lname) as pt_name, v.age_y as age, d.name as doctor_name, s.bpd, s.bps, s.temperature, s.rr, s.spo2, s.bw, s.height, s.bmi, s.cc, s.hpi, od.icd10, i.name as icd10_name from ovst o join ovstdiag od on od.vn = o.vn join vn_stat v on v.vn = o.vn left join patient p on p.hn = o.hn left join doctor d on d.code = od.doctor join icd101 i on i.code = od.icd10 left join opdscreen s on s.vn = o.vn where o.vstdate between :date1 and :date2 and od.diagtype = '1' order by o.vstdate, o.vsttime\",\n \"per_row\": [],\n \"inputs\": [],\n \"date_defaults\": {\n \"date1\": \"2026-10-01\",\n \"date2\": \"2026-10-31\"\n },\n \"row_line\": \"dashed\",\n \"props\": [],\n \"header_sql\": \"select h.hospitalcode,concat(o.hosptype,o.name) as hospital_name,\\nconcat(' ต. ',t.name,' อ. ',t1.name,' จ. ',t2.name) as address\\nfrom opdconfig h\\nleft outer join hospcode o on h.hospitalcode=o.hospcode\\nleft outer join thaiaddress t on t.tmbpart=o.tmbpart and t.amppart=o.amppart and t.chwpart=o.chwpart and t.codetype='3'\\nleft outer join thaiaddress t1 on t1.amppart=o.amppart and t1.chwpart=o.chwpart and t1.codetype='2'\\nleft outer join thaiaddress t2 on t2.chwpart=o.chwpart and t2.codetype='1'\",\n \"font_name\": null,\n \"font_size\": 11,\n \"title_size\": null,\n \"page_no_align\": \"center\",\n \"unsupported\": null,\n \"columns\": [\n {\n \"field\": \"vstdate\",\n \"caption\": \"วันที่รับบริการ\",\n \"width\": 20.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"date\"\n },\n {\n \"field\": \"hn\",\n \"caption\": \"HN\",\n \"width\": 25.0,\n \"align\": \"left\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"pt_name\",\n \"caption\": \"ชื่อ-สกุล\",\n \"width\": 30.0,\n \"align\": \"left\",\n \"memo\": true,\n \"format\": null\n },\n {\n \"field\": \"age\",\n \"caption\": \"อายุ\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"#,0\"\n },\n {\n \"field\": \"doctor_name\",\n \"caption\": \"แพทย์\",\n \"width\": 25.0,\n \"align\": \"left\",\n \"memo\": true,\n \"format\": null\n },\n {\n \"field\": \"icd10\",\n \"caption\": \"ICD10\",\n \"width\": 20.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"icd10_name\",\n \"caption\": \"ชื่อโรค\",\n \"width\": 30.0,\n \"align\": \"left\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"bps\",\n \"caption\": \"SBP\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"bpd\",\n \"caption\": \"DBP\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"temperature\",\n \"caption\": \"Temp\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"#,0.0\"\n },\n {\n \"field\": \"rr\",\n \"caption\": \"RR\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"spo2\",\n \"caption\": \"SpO2\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"bw\",\n \"caption\": \"BW\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"#,0.0\"\n },\n {\n \"field\": \"height\",\n \"caption\": \"Ht\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"#,0\"\n },\n {\n \"field\": \"bmi\",\n \"caption\": \"BMI\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"#,0.00\"\n },\n {\n \"field\": \"cc\",\n \"caption\": \"CC\",\n \"width\": 30.0,\n \"align\": \"left\",\n \"memo\": true,\n \"format\": null\n },\n {\n \"field\": \"hpi\",\n \"caption\": \"HPI\",\n \"width\": null,\n \"align\": \"left\",\n \"memo\": true,\n \"format\": null\n }\n ]\n}\n\nคำสั่งแก้: ชื่อรายงานเป็นสีน้ำเงิน"}]คำตอบ
{"kind": "edit", "reply": "เปลี่ยนสีชื่อรายงานเป็นสีน้ำเงินเรียบร้อยแล้วครับ", "title": "รายงานผู้ป่วยวินิจฉัยเดือน ตุลาคม 2569", "landscape": true, "sql": "select o.vstdate, o.hn, concat(p.pname, p.fname, ' ', p.lname) as pt_name, v.age_y as age, d.name as doctor_name, s.bpd, s.bps, s.temperature, s.rr, s.spo2, s.bw, s.height, s.bmi, s.cc, s.hpi, od.icd10, i.name as icd10_name from ovst o join ovstdiag od on od.vn = o.vn join vn_stat v on v.vn = o.vn left join patient p on p.hn = o.hn left join doctor d on d.code = od.doctor join icd101 i on i.code = od.icd10 left join opdscreen s on s.vn = o.vn where o.vstdate between :date1 and :date2 and od.diagtype = '1' order by o.vstdate, o.vsttime", "per_row": [], "inputs": [], "row_line": "dashed", "props": [{"id": "LnReportName", "prop": "Font.Color", "value": "clBlue"}], "date_defaults": {"date1": "2026-10-01", "date2": "2026-10-31"}, "header_sql": "select h.hospitalcode,concat(o.hosptype,o.name) as hospital_name,\nconcat(' ต. ',t.name,' อ. ',t1.name,' จ. ',t2.name) as address\nfrom opdconfig h\nleft outer join hospcode o on h.hospitalcode=o.hospcode\nleft outer join thaiaddress t on t.tmbpart=o.tmbpart and t.amppart=o.amppart and t.chwpart=o.chwpart and t.codetype='3'\nleft outer join thaiaddress t1 on t1.amppart=o.amppart and t1.chwpart=o.chwpart and t1.codetype='2'\nleft outer join thaiaddress t2 on t2.chwpart=o.chwpart and t2.codetype='1'", "font_name": null, "font_size": 11, "title_size": null, "page_no_align": "center", "unsupported": null, "columns": [{"field": "vstdate", "caption": "วันที่รับบริการ", "width": 20.0, "align": "center", "memo": false, "format": "date"}, {"field": "hn", "caption": "HN", "width": 25.0, "align": "left", "memo": false, "format": null}, {"field": "pt_name", "caption": "ชื่อ-สกุล", "width": 30.0, "align": "left", "memo": true, "format": null}, {"field": "age", "caption": "อายุ", "width": 15.0, "align": "center", "memo": false, "format": "#,0"}, {"field": "doctor_name", "caption": "แพทย์", "width": 25.0, "align": "left", "memo": true, "format": null}, {"field": "icd10", "caption": "ICD10", "width": 20.0, "align": "center", "memo": false, "format": null}, {"field": "icd10_name", "caption": "ชื่อโรค", "width": 30.0, "align": "left", "memo": false, "format": null}, {"field": "bps", "caption": "SBP", "width": 15.0, "align": "center", "memo": false, "format": null}, {"field": "bpd", "caption": "DBP", "width": 15.0, "align": "center", "memo": false, "format": null}, {"field": "temperature", "caption": "Temp", "width": 15.0, "align": "center", "memo": false, "format": "#,0.0"}, {"field": "rr", "caption": "RR", "width": 15.0, "align": "center", "memo": false, "format": null}, {"field": "spo2", "caption": "SpO2", "width": 15.0, "align": "center", "memo": false, "format": null}, {"field": "bw", "caption": "BW", "width": 15.0, "align": "center", "memo": false, "format": "#,0.0"}, {"field": "height", "caption": "Ht", "width": 15.0, "align": "center", "memo": false, "format": "#,0"}, {"field": "bmi", "caption": "BMI", "width": 15.0, "align": "center", "memo": false, "format": "#,0.00"}, {"field": "cc", "caption": "CC", "width": 30.0, "align": "left", "memo": true, "format": null}, {"field": "hpi", "caption": "HPI", "width": null, "align": "left", "memo": true, "format": null}]}2026-10-14 21:22:31 · report-edit · 20.3 วินาที · prompt 37,905 ตัวอักษร
messages
[{"role": "system", "content": "คุณแก้รายงาน HOSxP/EHP ตามคำสั่งภาษาไทย แล้วตอบรายงานทั้งตัวที่แก้แล้ว (JSON)\n- kind: ถ้าข้อความเป็นคำถาม/ขอคำแนะนำ (เช่น \"ควรเพิ่มอะไรดี\", \"มีข้อมูลอะไรอีก\") ให้ kind = question,\n ตอบใน answer สั้นๆ (ภาษาไทย) และ suggestions = คำสั่งแก้ที่ใช้ได้ทันที 3-6 ข้อ เช่น \"เพิ่มคอลัมน์ราคาขาย (unitprice)\", \"ชื่อรายงานขนาด 18\"\n (answer และ suggestions เป็นภาษาไทยที่ผู้ใช้อ่านเข้าใจ ห้ามใส่ชื่อ field ของ JSON เช่น title_size, font_name)\n อ้างอิงคอลัมน์ที่มีจริงในตารางที่ให้มาเท่านั้น และคืนรายงานเดิมโดยไม่แก้ ; ถ้าเป็นคำสั่งแก้ให้ kind = edit\n- หน้าตา: width = ความกว้าง mm (null = ยืดเต็มที่เหลือ, มีได้คอลัมน์เดียว), align = left/center/right,\n ความกว้างรวมทุกคอลัมน์ต้องไม่เกินกระดาษ: แนวตั้ง ~185 mm, แนวนอน ~270 mm (เกินระบบจะย่อให้เอง),\n memo = true คือแสดงข้อความเต็มโดยขึ้นบรรทัดใหม่ในช่อง, format เช่น #,0.00, landscape = กระดาษแนวนอน\n- \"เต็มช่อง/ไม่ให้ตัด/แสดงเต็ม\" ของคอลัมน์ใด = memo true และให้คอลัมน์นั้น width null (ยืดเต็มพื้นที่ที่เหลือ)\n แล้วกำหนด width ให้คอลัมน์อื่นที่เคยเป็น null ; \"กึ่งกลาง\" = align center\n- ข้อมูล: แก้ sql ได้ (SELECT เดียว, alias ภาษาอังกฤษ a-z0-9_, ใช้ :date1 :date2 ถ้ามีช่วงวันที่)\n- ช่องให้ผู้ใช้กรอกตอนพิมพ์ (เช่น คำค้นชื่อยา): inputs = [{name: a-z0-9_ เช่น keyword, label: ข้อความถามภาษาไทย, sample: ค่าตัวอย่าง}]\n ใน SQL ใช้ :name นอก quote เท่านั้น เช่น drugitems.name like concat('%', :keyword, '%')\n ห้ามเขียน '%:keyword%' (อยู่ใน quote จะไม่ถูกแทนค่า) ; ไม่มีช่องกรอกให้ inputs = []\n- ถ้า SELECT เดียวทำไม่ได้ (เช่น วนทุกหน่วยบริการในจังหวัดแล้วนับในฐานข้อมูลของแต่ละหน่วย หรือแต่ละแถวต้องคิวรี่แยก)\n ให้ทำแบบ *clientdataset: sql = รายการแถว และต้องมีคอลัมน์รอค่าไว้ก่อน (0 as visits / 0.00 as price / '' as note),\n per_row = ขั้นที่เติมค่าทีละแถว {field, kind: integer|double|string, sql: SELECT ที่คืนค่าเดียว}\n ใน sql ของ per_row ใช้ {ชื่อคอลัมน์} แทนค่าจากแถวนั้น เช่น select count(*) from {db_name}.ovst where vstdate between :date1 and :date2\n ค่าข้อความต้องครอบ quote เอง เช่น where pttype = '{pttype}' (ชื่อฐานข้อมูล/ตาราง เช่น {db_name}.ovst ไม่ต้องครอบ)\n รายชื่อหน่วยบริการทั้งจังหวัดอยู่ที่ ehp_report.ehp_hospcode (HospitalCode, HospitalName, TableSchema = ชื่อฐานข้อมูลของหน่วย,\n amppart, amppart_name, chwpart) จังหวัดของเราคือ (select chwpart from hospcode where hospcode = (select hospitalcode from opdconfig))\n ห้ามเปลี่ยน ehp_report.ehp_hospcode เป็นตารางอื่น ; รายงานทั่วไปให้ per_row = []\n- columns ต้องตรงกับ alias ใน select; ส่วนที่คำสั่งไม่ได้พูดถึงให้คงเดิม\n- หัวรายงาน (ชื่อสถานพยาบาล) มาจาก header_sql: SELECT เดียวที่ต้องคืนคอลัมน์ hospitalcode, hospital_name, address\n (1 แถว) ; ตาราง opdconfig มี hospitalcode, hospitalname (ไม่มี address ให้ใช้ '' as address)\n คำสั่งแบบ \"hospitalcode : hospitalname\" หมายถึงแสดง รหัส : ชื่อ เช่น\n select hospitalcode, concat(hospitalcode, ' : ', hospitalname) as hospital_name, '' as address from opdconfig\n ถ้าไม่ได้สั่งเรื่องหัวรายงานให้คงเดิม\n- ตัวอักษร: font_name = แบบอักษรทั้งรายงาน (เลือกจากรายการเท่านั้น, tahoma = Tahoma, สารบรรณ/sarabun = TH SarabunPSK),\n font_size = ขนาดตัวอักษรเนื้อหา/ทั้งหมด (pt, ปกติ 14; ข้อความอื่นปรับตามสัดส่วน),\n title_size = ขนาดชื่อรายงาน (title) ; ไม่ได้สั่งให้คงเดิม\n- ท้ายกระดาษ (footer): เลขหน้า \"หน้า 1 จาก N\" page_no_align = center (กึ่งกลาง) หรือ right (ขวา)\n- unsupported = ส่วนของคำสั่งที่แก้ไม่ได้ด้วยช่องข้างบน (อธิบายสั้นๆ ภาษาไทย) ; ทำได้ทั้งหมดให้เป็น null\n ห้ามบอกว่าทำได้ถ้าไม่มีช่องรองรับ\n- reply = ข้อความตอบผู้ใช้สั้นๆ ภาษาไทย 1-2 ประโยค ว่าแก้อะไรไป (เมื่อ kind = edit)\n- ข้อความก่อนหน้าเป็นบทสนทนาเดิม ใช้เข้าใจคำว่า \"ข้อ 2\", \"อันนั้น\", \"อีกนิด\" ; รายงานปัจจุบันในข้อความสุดท้ายคือของจริงล่าสุดเสมอ\n- ช่วงวันที่ใช้ :date1 :date2 เท่านั้น (EHP แสดงเป็นปฏิทินให้เลือก) ห้ามสร้าง inputs สำหรับวันที่ และห้ามเขียนวันที่ตายตัวใน SQL\n ถ้าผู้ใช้บอกช่วงวันที่ เช่น \"เดือนตุลาคม 2569\" ให้คง :date1 :date2 แล้วตั้งค่าเริ่มต้น date_defaults = {date1: \"2026-10-01\", date2: \"2026-10-31\"}\n (ปี พ.ศ. ลบ 543 = ค.ศ.) ; ไม่ได้พูดถึงค่าเริ่มต้นให้ date_defaults = null\n- เส้นคั่นใต้แต่ละแถว (record): row_line = solid เส้นทึบ | dashed เส้นประ | dotted จุด | none ไม่มีเส้น\n- ตอบผู้ใช้ (reply/answer/unsupported) เป็นภาษาคนทั่วไป ห้ามพูดถึง JSON, field, schema หรือชื่อตัวแปรภายใน\n\n- props = แก้ property ของ object ใดก็ได้ในรายการ \"objects\" [{id, prop, value}] เช่น\n {id: \"Line1\", prop: \"Pen.Style\", value: \"psDash\"} (เส้นประ), {id: \"LnReportName\", prop: \"Font.Size\", value: 18},\n {id: \"DBTexthn\", prop: \"TextAlignment\", value: \"taCentered\"}, {id: \"Label2\", prop: \"Visible\", value: false}\n ค่า mm* เป็นหน่วย 1/1000 มม. ; value = null คือเอาค่าที่เคยแก้ออก ; ค่าที่แก้ไว้แล้วจะถูกจำไว้ทุกรุ่น\nobjects (id | ชนิด | แถบ | properties):\nppTitleBand1 | TitleBand | - | Background.Brush.Style='bsClear' mmHeight=18256 mmPrintPosition=0\nLnReportName | Label | ppTitleBand1 | DesignLayer='ppDesignLayer1' Caption='รายงานผู้ป่วยวินิจฉัยเดือน ตุลาคม 2569' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] mmHeight=5821 mmLeft=2117 mmTop=6879 mmWidth=38893\nVariable2 | Variable | ppTitleBand1 | DesignLayer='ppDesignLayer1' BlankWhenZero=True CalcOrder=0 Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=10 Font.Style=[] mmHeight=6085 mmLeft=17170 mmTop=12171 mmWidth=150000 AutoSize=True\nLabel1 | Label | ppTitleBand1 | DesignLayer='ppDesignLayer1' Caption='ช่วงวันที่ ' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=10 Font.Style=[fsBold] mmHeight=6085 mmLeft=2088 mmTop=12171 mmWidth=15346\nDBText12 | DBText | ppTitleBand1 | DesignLayer='ppDesignLayer1' AutoSize=True DataField='hospital_name' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=13 Font.Style=[fsBold] ParentDataPipeline=True DataPipelineName='opdconfigPipeline' mmHeight=8202 mmLeft=2117 mmTop=794 mmWidth=1323\nppHeaderBand1 | HeaderBand | - | Background.Brush.Style='bsClear' mmHeight=7673 mmPrintPosition=0\nLine5 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentWidth=True Style='lsDouble' Weight=<binary> mmHeight=2114 mmLeft=0 mmTop=0 mmWidth=284163\nLine7 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True ParentWidth=True Position='lpBottom' Weight=<binary> mmHeight=7673 mmLeft=0 mmTop=0 mmWidth=197379\nLabel3 | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='ลำดับ' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=0 mmTop=1851 mmWidth=9500\nHeadvstdate | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='วันที่รับบริการ' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=9500 mmTop=1851 mmWidth=15851\nHeadhn | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='HN' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=25351 mmTop=1851 mmWidth=19814\nHeadpt_name | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='ชื่อ-สกุล' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=45165 mmTop=1851 mmWidth=23777\nHeadage | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='อายุ' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=68942 mmTop=1851 mmWidth=11888\nHeaddoctor_name | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='แพทย์' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=80830 mmTop=1851 mmWidth=19814\nHeadicd10 | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='ICD10' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=100644 mmTop=1851 mmWidth=15851\nHeadicd10_name | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='ชื่อโรค' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=116495 mmTop=1851 mmWidth=23777\nHeadbps | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='SBP' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=140272 mmTop=1851 mmWidth=11888\nHeadbpd | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='DBP' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=152160 mmTop=1851 mmWidth=11888\nHeadtemperature | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='Temp' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=164048 mmTop=1851 mmWidth=11888\nHeadrr | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='RR' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=175936 mmTop=1851 mmWidth=11888\nHeadspo2 | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='SpO2' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=187824 mmTop=1851 mmWidth=11888\nHeadbw | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='BW' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=199712 mmTop=1851 mmWidth=11888\nHeadheight | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='Ht' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=211600 mmTop=1851 mmWidth=11888\nHeadbmi | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='BMI' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=223488 mmTop=1851 mmWidth=11888\nHeadcc | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='CC' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=235376 mmTop=1851 mmWidth=23777\nHeadhpi | Label | ppHeaderBand1 | DesignLayer='ppDesignLayer1' AutoSize=True Caption='HPI' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5821 mmLeft=259153 mmTop=1851 mmWidth=25000\nGenLine36 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=0 mmTop=0 mmWidth=1322\nGenLine38 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=9500 mmTop=0 mmWidth=1322\nGenLine40 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=25351 mmTop=0 mmWidth=1322\nGenLine42 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=45165 mmTop=0 mmWidth=1322\nGenLine44 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=68942 mmTop=0 mmWidth=1322\nGenLine46 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=80830 mmTop=0 mmWidth=1322\nGenLine48 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=100644 mmTop=0 mmWidth=1322\nGenLine50 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=116495 mmTop=0 mmWidth=1322\nGenLine52 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=140272 mmTop=0 mmWidth=1322\nGenLine54 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=152160 mmTop=0 mmWidth=1322\nGenLine56 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=164048 mmTop=0 mmWidth=1322\nGenLine58 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=175936 mmTop=0 mmWidth=1322\nGenLine60 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=187824 mmTop=0 mmWidth=1322\nGenLine62 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=199712 mmTop=0 mmWidth=1322\nGenLine64 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=211600 mmTop=0 mmWidth=1322\nGenLine66 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=223488 mmTop=0 mmWidth=1322\nGenLine68 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=235376 mmTop=0 mmWidth=1322\nGenLine70 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=259153 mmTop=0 mmWidth=1322\nGenLine72 | Line | ppHeaderBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' Weight=<binary> mmHeight=7673 mmLeft=284163 mmTop=0 mmWidth=1322\nppDetailBand1 | DetailBand | - | Background1.Brush.Style='bsClear' Background2.Brush.Style='bsClear' PrintHeight='phDynamic' mmHeight=5821 mmPrintPosition=0\nRegionRow | Region | ppDetailBand1 | KeepTogether=True Brush.Style='bsClear' ParentHeight=True ParentWidth=True Pen.Style='psClear' Stretch=True mmHeight=5821 mmLeft=0 mmTop=0 mmWidth=284163\nLine1 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True ParentWidth=True Position='lpBottom' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=0 mmTop=0 mmWidth=197379\nDBCalc1 | DBCalc | ppDetailBand1 | DesignLayer='ppDesignLayer1' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] TextAlignment='taCentered' DBCalcType='dcCount' DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=0 mmTop=0 mmWidth=9500\nDBTextvstdate | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='vstdate' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=10000 mmTop=0 mmWidth=14851 TextAlignment='taCentered' DisplayFormat='date'\nDBTexthn | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='hn' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=25851 mmTop=0 mmWidth=18814 TextAlignment='taLeftJustified'\nDBTextpt_name | DBMemo | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='pt_name' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=45665 mmTop=0 mmWidth=22777 KeepTogether=True CharWrap=True RemoveEmptyLines=True Stretch=True TextAlignment='taLeftJustified'\nDBTextage | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='age' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=69442 mmTop=0 mmWidth=10888 TextAlignment='taCentered' DisplayFormat='#,0'\nDBTextdoctor_name | DBMemo | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='doctor_name' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=81330 mmTop=0 mmWidth=18814 KeepTogether=True CharWrap=True RemoveEmptyLines=True Stretch=True TextAlignment='taLeftJustified'\nDBTexticd10 | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='icd10' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=101144 mmTop=0 mmWidth=14851 TextAlignment='taCentered'\nDBTexticd10_name | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='icd10_name' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=116995 mmTop=0 mmWidth=22777 TextAlignment='taLeftJustified'\nDBTextbps | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='bps' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=140772 mmTop=0 mmWidth=10888 TextAlignment='taCentered'\nDBTextbpd | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='bpd' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=152660 mmTop=0 mmWidth=10888 TextAlignment='taCentered'\nDBTexttemperature | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='temperature' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=164548 mmTop=0 mmWidth=10888 TextAlignment='taCentered' DisplayFormat='#,0.0'\nDBTextrr | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='rr' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=176436 mmTop=0 mmWidth=10888 TextAlignment='taCentered'\nDBTextspo2 | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='spo2' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=188324 mmTop=0 mmWidth=10888 TextAlignment='taCentered'\nDBTextbw | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='bw' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=200212 mmTop=0 mmWidth=10888 TextAlignment='taCentered' DisplayFormat='#,0.0'\nDBTextheight | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='height' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=212100 mmTop=0 mmWidth=10888 TextAlignment='taCentered' DisplayFormat='#,0'\nDBTextbmi | DBText | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='bmi' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=223988 mmTop=0 mmWidth=10888 TextAlignment='taCentered' DisplayFormat='#,0.00'\nDBTextcc | DBMemo | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='cc' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=235876 mmTop=0 mmWidth=22777 KeepTogether=True CharWrap=True RemoveEmptyLines=True Stretch=True TextAlignment='taLeftJustified'\nDBTexthpi | DBMemo | ppDetailBand1 | DesignLayer='ppDesignLayer1' DataField='hpi' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=11 Font.Style=[] DataPipelineName='MasterPipeline' mmHeight=5821 mmLeft=259653 mmTop=0 mmWidth=24000 KeepTogether=True CharWrap=True RemoveEmptyLines=True Stretch=True TextAlignment='taLeftJustified'\nGenLine37 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=0 mmTop=0 mmWidth=1322\nGenLine39 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=9500 mmTop=0 mmWidth=1322\nGenLine41 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=25351 mmTop=0 mmWidth=1322\nGenLine43 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=45165 mmTop=0 mmWidth=1322\nGenLine45 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=68942 mmTop=0 mmWidth=1322\nGenLine47 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=80830 mmTop=0 mmWidth=1322\nGenLine49 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=100644 mmTop=0 mmWidth=1322\nGenLine51 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=116495 mmTop=0 mmWidth=1322\nGenLine53 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=140272 mmTop=0 mmWidth=1322\nGenLine55 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=152160 mmTop=0 mmWidth=1322\nGenLine57 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=164048 mmTop=0 mmWidth=1322\nGenLine59 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=175936 mmTop=0 mmWidth=1322\nGenLine61 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=187824 mmTop=0 mmWidth=1322\nGenLine63 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=199712 mmTop=0 mmWidth=1322\nGenLine65 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=211600 mmTop=0 mmWidth=1322\nGenLine67 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=223488 mmTop=0 mmWidth=1322\nGenLine69 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=235376 mmTop=0 mmWidth=1322\nGenLine71 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=259153 mmTop=0 mmWidth=1322\nGenLine73 | Line | ppDetailBand1 | DesignLayer='ppDesignLayer1' ParentHeight=True Position='lpLeft' StretchWithParent=True Weight=<binary> mmHeight=5821 mmLeft=284163 mmTop=0 mmWidth=1322\nppFooterBand1 | FooterBand | - | Background.Brush.Style='bsClear' mmHeight=8467 mmPrintPosition=0\nSystemVariable1 | SystemVariable | ppFooterBand1 | DesignLayer='ppDesignLayer1' VarType='vtPageSetDesc' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=9 Font.Style=[fsBold] TextAlignment='taCentered' mmHeight=5292 mmLeft=122081 mmTop=0 mmWidth=40000 AutoSize=True\nLabel2 | Label | ppFooterBand1 | DesignLayer='ppDesignLayer1' Caption='บริษัท บางกอกโกลบอลซอฟต์แวร์ จำกัด' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=8 Font.Style=[] TextAlignment='taRightJustified' mmHeight=4763 mmLeft=247386 mmTop=0 mmWidth=36778\nLnLogin | Label | ppFooterBand1 | DesignLayer='ppDesignLayer1' Caption='LnLogin' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=8 Font.Style=[] mmHeight=4763 mmLeft=0 mmTop=0 mmWidth=8202\nLnPrinterName | Label | ppFooterBand1 | DesignLayer='ppDesignLayer1' Caption='LnPrinterName' Font.Color='clBlack' Font.Name='TH SarabunPSK' Font.Size=8 Font.Style=[] mmHeight=4763 mmLeft=0 mmTop=3703 mmWidth=15610\nppSummaryBand1 | SummaryBand | - | Background.Brush.Style='bsClear' mmHeight=0 mmPrintPosition=0\n\nตาราง/คอลัมน์ที่มีจริง:\novst(hos_guid, vn, hn, an, vstdate, vsttime, doctor, hospmain, hospsub, oqueue, ovstist, ovstost, pttype, pttypeno, rfrics, rfrilct, rfrocs, rfrolct, spclty, rcpt_disease, hcode, cur_dep, cur_dep_busy, last_dep, cur_dep_time, rx_queue, diag_text, pt_subtype, main_dep, main_dep_queue, finance_summary_date, visit_type, node_id, contract_id, waiting, rfri_icd10, o_refer_number, has_insurance, i_refer_number, refer_type, o_refer_dep, staff, command_doctor, send_person, pt_priority, finance_lock, oldcode, sign_doctor, anonymous_visit, anonymous_vn, pt_capability_type_id, at_hospital, ovst_key)\novstdiag(ovst_diag_id, vn, icd10, hn, vstdate, vsttime, diagtype, icd103, hcode, doctor, episode, ext_code, hos_guid, dep_flag, ovst_oper_type, staff, dx_guid, lock_dx, dx_code_note, ovstdiag_severe_type_id, diag_no, update_datetime, confirm, confirm_staff, opi_guid, sct_id, icd11)\nvn_stat(vn, hn, pdx, gr504, lastvisit, accident_code, dx_doctor, dx0, dx1, dx2, dx3, dx4, dx5, sex, age_y, age_m, age_d, aid, moopart, count_in_month, count_in_year, pttype, income, paid_money, remain_money, uc_money, item_money, dba, spclty, vstdate, op0, op1, op2, op3, op4, op5, rcp_no, print_count, print_done, pttype_in_region, pttype_in_chwpart, pcode, hcode, inc01, inc02, inc03, inc04, inc05, inc06, inc07, inc08, inc09, inc10, inc11, inc12, inc13, inc14, inc15, inc16, hospmain, hospsub, pttypeno, pttype_expire, cid, main_pdx, inc17, inc_drug, inc_nondrug, pt_subtype, rcpno_list, ym, node_id, ill_visit, count_in_day, pttype_begin, lastvisit_hour, rcpt_money, discount_money, old_diagnosis, debt_id_list, vn_guid, lastvisit_vn, hos_guid, rx_license_no, lab_paid_ok, xray_paid_ok)\npatient(hos_guid, hn, pname, fname, lname, occupation, citizenship, birthday, addrpart, moopart, tmbpart, amppart, chwpart, bloodgrp, clinic, deathday, drugallergy, familyno, fathername, firstday, hometel, informaddr, informname, informrelation, informtel, marrystatus, mathername, hn_int, nationality, opdlocation, pttype, religion, sex, spsname, truebirthday, workaddr, worktel, hcode, cid, hid, educate, family_status, labor_type, last_update, type_area, road, father_cid, mother_cid, couple_cid, person_type, private_doctor_name, legal_action, death_code504, death_diag, node_id, admit, midname, po_code, fatherlname, motherlname, spslname, country, email, birthtime, mother_hn, last_visit, death, height, inregion, reg_time, oldcode, lang, gov_chronic_id, in_cups, patient_type_id, addr_soi, work_addr, father_hn, alias_name, destroyed, old_addr, fname_soundex, lname_soundex, bloodgroup_rh, passport_no, addressid, mobile_phone_number, anonymous_person, hospital_department_id, membercard_no, ec_fname, ec_lname, ec_relation_type_id, patient_color_id, number_of_relatives, birth_order, person_labor_type_id, is_card_destroy, card_destroy_date, g6pd, full_name)\ndoctor(code, name, shortname, licenseno, department, jobposition, active, force_diagnosis, oldcode, search_keyword, cid, position_id, addrpart, moopart, zoipart, roadpart, tmbpart, amppart, chwpart, nationality, doctor_guid, allow_df_edit, force_icd_diagnosis, ename, spclty, clinic, doctor_department_id, name_soundex, chronic_staff, hos_guid, provider_type_code, sex, council_code, birth_date, start_date, finish_date, move_from_hospcode, move_to_hospcode, update_datetime, pname, lname, fname, emp_id, sub_spclty_id, doctor_type_id, hospital_list, license_issue_date, license_expire_date, use_app_slot, allow_online_appointment, queue_prefix, enable_qs_call, no_require_qs_slot, use_week_slot, can_approve_ipd_order, allow_appointment_over_slot, line_notify_token, line_notify_ipd_lab_critical, force_pe_entry, force_provider_id_login, last_provider_id_login, provider_id_name, provider_id_position)\nicd101(code, name, spclty, tname, code3, code4, code5, sex, ipd_valid, icd10compat, icd10tmcompat, active_status, hos_guid, hos_guid_ext)\nopdscreen(hos_guid, vn, hn, vstdate, vsttime, begintime, outtime, endtime, bpd, bps, bw, cc, hr, pe, pulse, temperature, note, rr, cc_begin_date, cc_cause_of_visit, cc_sign, cc_duration, cc_position, cc_note, his_begin_date, his_frequency, his_severity, his_cause, his_expand, his_cause_increase, his_cause_decrease, his_related_sign, height, screen_dep, waiting, fbs, help1, help2, help3, help4, help1_time, help1_bps, help1_bpd, help2_time, help2_temp, help3_icode, help3_time, help3_qty, help4_note, advice1, advice2, advice3, advice4, advice5, advice6, advice7, cradle, pe_ga, pe_heent, pe_heart, pe_lung, pe_ab, pe_ext, pe_neuro, pe_ga_text, pe_heent_text, pe_heart_text, pe_lung_text, pe_ab_text, pe_neuro_text, pe_ext_text, bmi, tg, hdl, glucurine, blank1, bun, creatinine, ua, hba1c, riskdm, skin_color, found_amphetamine, pregnancy, advice7_note, checkup, er_note, found_allergy, hpi, pmh, fh, sh, ros, tc, ldl, ast, alt, symptom, walk_id, peak_flow, cholesterol, waist, advice8, breast_feeding, cradle_lie, pain_score, pefr, opdscreen_patient_type_id, creatinine_kidney_percent, sodium, chloride, potassium, tco2, smoking_type_id, drinking_type_id, pulse_regulation_type_id, spo2, urine_albumin, urine_creatinine, pefr_percent, macro_albumin, micro_albumin, egfr, hb, upcr, bicarb, phosphate, pth, pe_gy, pe_gy_text, pe_gu, pe_gu_text, pe_gi, pe_gi_text, bsa, pe_head, pe_head_text, pe_skin, pe_skin_text, g6pd, pe_rtf, o2sat, pe_pv, pe_pv_text, pe_pr, pe_pr_text, pe_gen, pe_gen_text, pre_pain_score, post_pain_score)\nperson(person_id, house_id, cid, pname, fname, lname, pcode, sex, nationality, citizenship, education, occupation, religion, marrystatus, house_regist_type_id, birthdate, has_house_regist, chronic_disease_list, club_list, village_id, blood_group, current_age, death_date, hos_guid, income_per_year, home_position_id, family_position_id, drug_allergy, last_update, death, pttype, pttype_begin_date, pttype_expire_date, pttype_hospmain, pttype_hospsub, father_person_id, mother_person_id, pttype_no, sps_person_id, birthtime, age_y, age_m, age_d, family_id, person_house_position_id, couple_person_id, person_guid, house_guid, last_update_pttype, patient_link, patient_hn, found_dw_emr, person_discharge_id, movein_date, discharge_date, person_labor_type_id, father_name, mother_name, sps_name, father_cid, mother_cid, sps_cid, bloodgroup_rh, home_phone, old_code, deformed_status, ncd_dm_history_type_id, ncd_ht_history_type_id, agriculture_member_type_id, senile, in_region, body_weight_kg, height_cm, nutrition_level, height_nutrition_level, bw_ht_nutrition_level, hometel, worktel, register_conflict, care_person_name, work_addr, person_dm_screen_status_id, person_ht_screen_status_id, person_stroke_screen_status_id, person_obesity_screen_status_id, person_dmht_manage_type_id, last_screen_dmht_bdg_year, dw_chronic_register, mobile_phone, pttype_nhso_valid, pttype_nhso_valid_datetime, clinic_code_list, addr_1, addr_2)\npttype(pttype, name, editmask, isuse, pcode, requirecode, doctor_fee, fee_code, discount, contract, paidst, in_region, uc, require_hcode, oldcode, fee_code2, price_type, debtor, noexpire, hipdata_code, min_age, max_age, bill_sss, bill_type, hipdata_pttype, use_contract_id, yearly_charge, yearly_charge_icode1, yearly_charge_icode2, region_type, pttype_group1, pttype_group2, pttype_guid, max_debt_money, allow_finance_edit, print_csmb_statement, pttype_information, fee_code_paidst, fee_code2_paidst, debt_due_day, rx_pay_debit_tr, separate_rcpno, rcp_bookno, separate_debt_id, admit_fee_code, use_package, charge_df_perday, nhso_code, ipd_hour_cut, pttype_spp_id, print_presc_ned, hos_guid, sks_benefit_plan_type_id, pttype_std_code, export_eclaim, round_money, pttype_price_policy_type_id, emp_privilege, is_pttype_plan, finance_round_money, emp_financial, pttype_price_group_id, calc_discount, debt_finance_limit, debt_finance_pttype, opbkk_type_code, ipd_bedcharge_24, nhso_subinscl, grouper_version, rx_queue_group_id, inc_round_money, hospmain_list, grouper_release, check_nhso_auth, pttype_upp_type_id, default_request_funds, force_check_ed, force_check_ed_days)\nspclty(spclty, name, depcode, ovstostlink, spname, shortname, ill_visit, spclty_guid, no_service_charge, no_service_charge_doctor, oldcode, nhso_code, operation, provis_code, hos_guid, no_export_43, display_order, allow_online_appointment, active_status)"}, {"role": "user", "content": "กำหนดเป็น 11"}, {"role": "assistant", "content": "ปรับขนาดตัวอักษรเนื้อหาเป็น 11 pt เรียบร้อยแล้วครับ"}, {"role": "user", "content": "เมื่อจบ 1 record ปรับให้เป็นเส้นประได้ไหม"}, {"role": "assistant", "content": "ขออภัยครับ ระบบการตั้งค่ารายงานในรูปแบบ JSON นี้ไม่รองรับการกำหนดรูปแบบเส้นขอบ (Border) หรือการเปลี่ยนเส้นคั่นระหว่างระเบียนเป็นเส้นประครับ ทำไม่ได้: ปรับเส้นคั่นระหว่าง record เป็นเส้นประ"}, {"role": "user", "content": "เมื่อจบ 1 record ปรับให้เป็นเส้นประได้ไหม"}, {"role": "assistant", "content": "ปรับเส้นคั่นระหว่างแถวให้เป็นเส้นประเรียบร้อยแล้วครับ"}, {"role": "user", "content": "ชื่อรายงานเป็นสีน้ำเงิน และหัวคอลัมน์ HN ชิดซ้าย"}, {"role": "assistant", "content": "เปลี่ยนสีชื่อรายงานเป็นสีน้ำเงิน และปรับหัวคอลัมน์ HN ให้ชิดซ้ายเรียบร้อยแล้วครับ"}, {"role": "user", "content": "รายงานปัจจุบัน:\n{\n \"title\": \"รายงานผู้ป่วยวินิจฉัยเดือน ตุลาคม 2569\",\n \"landscape\": true,\n \"sql\": \"select o.vstdate, o.hn, concat(p.pname, p.fname, ' ', p.lname) as pt_name, v.age_y as age, d.name as doctor_name, s.bpd, s.bps, s.temperature, s.rr, s.spo2, s.bw, s.height, s.bmi, s.cc, s.hpi, od.icd10, i.name as icd10_name from ovst o join ovstdiag od on od.vn = o.vn join vn_stat v on v.vn = o.vn left join patient p on p.hn = o.hn left join doctor d on d.code = od.doctor join icd101 i on i.code = od.icd10 left join opdscreen s on s.vn = o.vn where o.vstdate between :date1 and :date2 and od.diagtype = '1' order by o.vstdate, o.vsttime\",\n \"per_row\": [],\n \"inputs\": [],\n \"date_defaults\": {\n \"date1\": \"2026-10-01\",\n \"date2\": \"2026-10-31\"\n },\n \"row_line\": \"solid\",\n \"props\": [],\n \"header_sql\": \"select h.hospitalcode,concat(o.hosptype,o.name) as hospital_name,\\nconcat(' ต. ',t.name,' อ. ',t1.name,' จ. ',t2.name) as address\\nfrom opdconfig h\\nleft outer join hospcode o on h.hospitalcode=o.hospcode\\nleft outer join thaiaddress t on t.tmbpart=o.tmbpart and t.amppart=o.amppart and t.chwpart=o.chwpart and t.codetype='3'\\nleft outer join thaiaddress t1 on t1.amppart=o.amppart and t1.chwpart=o.chwpart and t1.codetype='2'\\nleft outer join thaiaddress t2 on t2.chwpart=o.chwpart and t2.codetype='1'\",\n \"font_name\": null,\n \"font_size\": 11,\n \"title_size\": null,\n \"page_no_align\": \"center\",\n \"unsupported\": null,\n \"columns\": [\n {\n \"field\": \"vstdate\",\n \"caption\": \"วันที่รับบริการ\",\n \"width\": 20.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"date\"\n },\n {\n \"field\": \"hn\",\n \"caption\": \"HN\",\n \"width\": 25.0,\n \"align\": \"left\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"pt_name\",\n \"caption\": \"ชื่อ-สกุล\",\n \"width\": 30.0,\n \"align\": \"left\",\n \"memo\": true,\n \"format\": null\n },\n {\n \"field\": \"age\",\n \"caption\": \"อายุ\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"#,0\"\n },\n {\n \"field\": \"doctor_name\",\n \"caption\": \"แพทย์\",\n \"width\": 25.0,\n \"align\": \"left\",\n \"memo\": true,\n \"format\": null\n },\n {\n \"field\": \"icd10\",\n \"caption\": \"ICD10\",\n \"width\": 20.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"icd10_name\",\n \"caption\": \"ชื่อโรค\",\n \"width\": 30.0,\n \"align\": \"left\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"bps\",\n \"caption\": \"SBP\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"bpd\",\n \"caption\": \"DBP\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"temperature\",\n \"caption\": \"Temp\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"#,0.0\"\n },\n {\n \"field\": \"rr\",\n \"caption\": \"RR\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"spo2\",\n \"caption\": \"SpO2\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": null\n },\n {\n \"field\": \"bw\",\n \"caption\": \"BW\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"#,0.0\"\n },\n {\n \"field\": \"height\",\n \"caption\": \"Ht\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"#,0\"\n },\n {\n \"field\": \"bmi\",\n \"caption\": \"BMI\",\n \"width\": 15.0,\n \"align\": \"center\",\n \"memo\": false,\n \"format\": \"#,0.00\"\n },\n {\n \"field\": \"cc\",\n \"caption\": \"CC\",\n \"width\": 30.0,\n \"align\": \"left\",\n \"memo\": true,\n \"format\": null\n },\n {\n \"field\": \"hpi\",\n \"caption\": \"HPI\",\n \"width\": null,\n \"align\": \"left\",\n \"memo\": true,\n \"format\": null\n }\n ]\n}\n\nคำสั่งแก้: เมื่อจบ 1 record ปรับให้เป็นเส้นประ"}]คำตอบ
{"kind": "edit", "reply": "ปรับเส้นคั่นระหว่างแถวให้เป็นเส้นประเรียบร้อยแล้วครับ", "title": "รายงานผู้ป่วยวินิจฉัยเดือน ตุลาคม 2569", "landscape": true, "sql": "select o.vstdate, o.hn, concat(p.pname, p.fname, ' ', p.lname) as pt_name, v.age_y as age, d.name as doctor_name, s.bpd, s.bps, s.temperature, s.rr, s.spo2, s.bw, s.height, s.bmi, s.cc, s.hpi, od.icd10, i.name as icd10_name from ovst o join ovstdiag od on od.vn = o.vn join vn_stat v on v.vn = o.vn left join patient p on p.hn = o.hn left join doctor d on d.code = od.doctor join icd101 i on i.code = od.icd10 left join opdscreen s on s.vn = o.vn where o.vstdate between :date1 and :date2 and od.diagtype = '1' order by o.vstdate, o.vsttime", "per_row": [], "inputs": [], "row_line": "dashed", "props": [], "date_defaults": {"date1": "2026-10-01", "date2": "2026-10-31"}, "header_sql": "select h.hospitalcode,concat(o.hosptype,o.name) as hospital_name,\nconcat(' ต. ',t.name,' อ. ',t1.name,' จ. ',t2.name) as address\nfrom opdconfig h\nleft outer join hospcode o on h.hospitalcode=o.hospcode\nleft outer join thaiaddress t on t.tmbpart=o.tmbpart and t.amppart=o.amppart and t.chwpart=o.chwpart and t.codetype='3'\nleft outer join thaiaddress t1 on t1.amppart=o.amppart and t1.chwpart=o.chwpart and t1.codetype='2'\nleft outer join thaiaddress t2 on t2.chwpart=o.chwpart and t2.codetype='1'", "font_name": null, "font_size": 11, "title_size": null, "page_no_align": "center", "unsupported": null, "columns": [{"field": "vstdate", "caption": "วันที่รับบริการ", "width": 20.0, "align": "center", "memo": false, "format": "date"}, {"field": "hn", "caption": "HN", "width": 25.0, "align": "left", "memo": false, "format": null}, {"field": "pt_name", "caption": "ชื่อ-สกุล", "width": 30.0, "align": "left", "memo": true, "format": null}, {"field": "age", "caption": "อายุ", "width": 15.0, "align": "center", "memo": false, "format": "#,0"}, {"field": "doctor_name", "caption": "แพทย์", "width": 25.0, "align": "left", "memo": true, "format": null}, {"field": "icd10", "caption": "ICD10", "width": 20.0, "align": "center", "memo": false, "format": null}, {"field": "icd10_name", "caption": "ชื่อโรค", "width": 30.0, "align": "left", "memo": false, "format": null}, {"field": "bps", "caption": "SBP", "width": 15.0, "align": "center", "memo": false, "format": null}, {"field": "bpd", "caption": "DBP", "width": 15.0, "align": "center", "memo": false, "format": null}, {"field": "temperature", "caption": "Temp", "width": 15.0, "align": "center", "memo": false, "format": "#,0.0"}, {"field": "rr", "caption": "RR", "width": 15.0, "align": "center", "memo": false, "format": null}, {"field": "spo2", "caption": "SpO2", "width": 15.0, "align": "center", "memo": false, "format": null}, {"field": "bw", "caption": "BW", "width": 15.0, "align": "center", "memo": false, "format": "#,0.0"}, {"field": "height", "caption": "Ht", "width": 15.0, "align": "center", "memo": false, "format": "#,0"}, {"field": "bmi", "caption": "BMI", "width": 15.0, "align": "center", "memo": false, "format": "#,0.00"}, {"field": "cc", "caption": "CC", "width": 30.0, "align": "left", "memo": true, "format": null}, {"field": "hpi", "caption": "HPI", "width": null, "align": "left", "memo": true, "format": null}]}