SMMNP06800_피부관찰기록.xfdl 69 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMMNP06800" position="absolute 0 0 1195 790" titletext="수술환자피부관찰" onload="SMMNP06800_onload" ontimer="SMMNP06800_ontimer">
  5. <Layouts>
  6. <Layout>
  7. <Static text="수술환자피부관찰" position="absolute 0 0 135 25" id="caption6" class="tit_1"/>
  8. <Div position="absolute 0 24 1195 59" align="align:center top;" id="grp_sea" class="div_SA" anchor="left top right">
  9. <Layouts>
  10. <Layout>
  11. <Static text="수술일자 :" position="absolute 21 8 107 28" id="caption2" class="search_name" anchor="default" style="align:left middle;"/>
  12. <Static text="수 술 방 :" position="absolute 360 8 446 28" id="caption3" class="search_name" anchor="default" style="align:left middle;"/>
  13. <Static text="환자명/등록번호 :" position="absolute 680 8 812 28" id="caption1" class="search_name" anchor="default" style="align:left middle;"/>
  14. <Static text="~" position="absolute 208 8 220 28" id="caption7" class="search_no_b" anchor="default" style="align:left middle;"/>
  15. <Shape position="absolute 1102 7 1108 29" linetype="vertical" id="line13" class="line_4" anchor="top right"/>
  16. <Calendar position="absolute 112 8 202 28" id="ipt_fromdd" class="input_search" anchor="default" autoselect="true" dateformat="yyyy-MM-dd" value="null" autoskip="true" style="align:left middle;" taborder="0"/>
  17. <Calendar position="absolute 225 8 315 28" id="ipt_todd" class="input_search" anchor="default" autoselect="true" dateformat="yyyy-MM-dd" autoskip="true" style="align:left middle;" taborder="1"/>
  18. <Combo position="absolute 450 8 542 28" id="cmb_rosette" class="combo_default" innerdataset="@ds_init_rosettelist" datacolumn="rosettenm" codecolumn="rosettecd" anchor="default" onitemchanged="grp_sea_cmb_rosette_onitemchanged" style="align:left middle;" taborder="2"/>
  19. <Combo position="absolute 544 8 641 28" id="cmb_oproomlist" innerdataset="@ds_init_oproomlist" datacolumn="oproomnm" codecolumn="oproomcd" anchor="default" style="align:left middle;" taborder="3"/>
  20. <Edit position="absolute 818 8 918 28" id="ipt_pid" anchor="default" autoselect="true" onrbuttonup="grp_sea_ipt_pid_onrbuttonup" onkeyup="grp_sea_ipt_pid_onkeyup" style="align:left middle;" taborder="4"/>
  21. <Button position="absolute 1124 8 1180 28" id="btn_srch" class="btn1" text="조회" anchor="top right" onclick="grp_sea_btn_srch_onclick" style="align:left middle;" taborder="5"/>
  22. </Layout>
  23. </Layouts>
  24. </Div>
  25. <Static text="피부관찰기록리스트" position="absolute 0 64 144 80" align="align:center middle;" id="caption9" class="tit_2"/>
  26. <Button position="absolute 889 61 953 81" id="btn_chgnmode" class="btn2" text="기록모드" onclick="btn_chgnmode_onclick" anchor="top right"/>
  27. <Button position="absolute 955 61 1008 81" id="btn_addrow" class="btn2" text="행추가" onclick="btn_addrow_onclick" anchor="top right"/>
  28. <Button position="absolute 1010 61 1063 81" id="btn_delrow" class="btn2" text="행삭제" onclick="btn_delrow_onclick" anchor="top right"/>
  29. <Button position="absolute 1065 61 1129 81" id="btn_tmpsave" class="btn2" text="임시저장" onclick="btn_tmpsave_onclick" anchor="top right"/>
  30. <Button position="absolute 1131 61 1195 81" id="btn_save" class="btn5" text="인증저장" onclick="btn_save_onclick" anchor="top right"/>
  31. <Button position="absolute 1084 771 1135 790" id="btn_print" class="btn6" text="출력" onclick="btn_print_onclick" anchor="right bottom"/>
  32. <Button position="absolute 1137 771 1195 790" id="btn_saveexcel" class="btn7" text="Excel" onclick="btn_saveexcel_onclick" anchor="right bottom"/>
  33. <Shape position="absolute 0 80 1195 86" linetype="horizontal" id="line1" class="line_10" style="strokepen:2 solid #33bbbbff;" anchor="left top right"/>
  34. <Edit readonly="true" position="absolute 162 61 563 81" id="opt_recpatinfo" class="output" style="font:Dotum,9,bold;"/>
  35. <Edit readonly="true" position="absolute 569 60 584 79" id="output1" visible="false"/>
  36. <Edit readonly="true" position="absolute 587 60 602 79" id="output2" visible="false"/>
  37. <Grid position="absolute 610 61 660 71" id="grd_excel" visible="false" binddataset="ds_main_skinserveyinfo_skinsurveylist">
  38. <Formats>
  39. <Format id="default">
  40. <Columns>
  41. <Column size="37"/>
  42. <Column size="105"/>
  43. <Column size="35"/>
  44. <Column size="47"/>
  45. <Column size="65"/>
  46. <Column size="55"/>
  47. <Column size="36"/>
  48. <Column size="162"/>
  49. <Column size="45"/>
  50. <Column size="45"/>
  51. <Column size="70"/>
  52. <Column size="70"/>
  53. <Column size="34"/>
  54. <Column size="94"/>
  55. <Column size="37"/>
  56. <Column size="37"/>
  57. <Column size="37"/>
  58. <Column size="75"/>
  59. <Column size="67"/>
  60. <Column size="75"/>
  61. <Column size="200"/>
  62. </Columns>
  63. <Rows>
  64. <Row size="24" band="head"/>
  65. <Row size="24" band="head"/>
  66. <Row size="24"/>
  67. </Rows>
  68. <Band id="head">
  69. <Cell rowspan="2" text="상태" taborder="undefined"/>
  70. <Cell col="1" rowspan="2" text="수술일시" taborder="undefined"/>
  71. <Cell col="2" rowspan="2" text="수술&#10;방" taborder="undefined"/>
  72. <Cell col="3" rowspan="2" text="집도과" taborder="undefined"/>
  73. <Cell col="4" rowspan="2" text="등록번호" taborder="undefined"/>
  74. <Cell col="5" rowspan="2" text="환자명" taborder="undefined"/>
  75. <Cell col="6" rowspan="2" text="S/A" taborder="undefined"/>
  76. <Cell col="7" rowspan="2" text="수술명(영문)" taborder="undefined"/>
  77. <Cell col="8" rowspan="2" text="집도의" taborder="undefined"/>
  78. <Cell col="9" rowspan="2" text="마취의" taborder="undefined"/>
  79. <Cell col="10" rowspan="2" text="관찰시기" taborder="undefined"/>
  80. <Cell col="11" rowspan="2" text="관찰장소" taborder="undefined"/>
  81. <Cell col="12" rowspan="2" text="이상&#10;유무" taborder="undefined"/>
  82. <Cell col="13" rowspan="2" text="이상부위" taborder="undefined"/>
  83. <Cell col="14" colspan="3" text="크기(cm)" taborder="undefined"/>
  84. <Cell col="17" rowspan="2" text="피부상태" taborder="undefined"/>
  85. <Cell col="18" rowspan="2" text="관찰자" taborder="undefined"/>
  86. <Cell col="19" rowspan="2" text="확인의" taborder="undefined"/>
  87. <Cell col="20" rowspan="2" text="Remark" taborder="undefined"/>
  88. <Cell row="1" col="14" text="가로"/>
  89. <Cell row="1" col="15" text="세로"/>
  90. <Cell row="1" col="16" text="길이"/>
  91. </Band>
  92. <Band id="body">
  93. <Cell displaytype="combo" edittype="none" text="bind:recstat" combodataset="ds_cmb_recstat" combocodecol="value" combodatacol="label" enable="false"/>
  94. <Cell col="1" displaytype="date" text="bind:opfromdt" mask="yyyy-mm-dd hh:nn"/>
  95. <Cell col="2" text="bind:oproomnm"/>
  96. <Cell col="3" text="bind:perfdeptnm"/>
  97. <Cell col="4" text="bind:pid"/>
  98. <Cell col="5" text="bind:hngnm"/>
  99. <Cell col="6" text="bind:sexage"/>
  100. <Cell col="7" style="align:left middle;" text="bind:opnm"/>
  101. <Cell col="8" text="bind:perfdrnm"/>
  102. <Cell col="9" text="bind:drnm"/>
  103. <Cell col="10" displaytype="combo" edittype="combo" text="bind:surveypriod" combodataset="ds_init_M0559" combocodecol="cdid" combodatacol="cdnm"/>
  104. <Cell col="11" displaytype="combo" edittype="combo" text="bind:surveyplace" combodataset="ds_init_hardcodeinfo" combocodecol="cdid" combodatacol="cdnm"/>
  105. <Cell col="12" displaytype="combo" edittype="combo" text="bind:trobyn" combodataset="ds_cmb_trobyn" combocodecol="value" combodatacol="label"/>
  106. <Cell col="13" displaytype="text" edittype="text" text="bind:trobpart" expandshow="show"/>
  107. <Cell col="14" displaytype="text" edittype="text" text="bind:trobwidth"/>
  108. <Cell col="15" displaytype="text" edittype="text" text="bind:trobheight"/>
  109. <Cell col="16" displaytype="text" edittype="text" text="bind:troblength"/>
  110. <Cell col="17" displaytype="combo" edittype="combo" text="bind:skinstat" combodataset="ds_codelist" combocodecol="cdid" combodatacol="cdnm"/>
  111. <Cell col="18" text="bind:surveynm"/>
  112. <Cell col="19" text="bind:cnfmrnm"/>
  113. <Cell col="20" text="bind:remark"/>
  114. </Band>
  115. </Format>
  116. </Formats>
  117. </Grid>
  118. <Static id="Static76" text="H10" onclick="Static76_onclick" class="sta_guide" visible="false" position="absolute 0 59 596 69"/>
  119. <Grid id="grd_skinsurveylist" taborder="1" binddataset="ds_main_skinserveyinfo_skinsurveylist" autoenter="select" useinputpanel="false" cellsizingtype="both" cellsizebandtype="allband" oncellclick="grd_skinsurveylist_oncellclick" onexpanddown="grd_skinsurveylist_onexpanddown" position="absolute 0 85 1195 769" anchor="all" onkeydown="grd_skinsurveylist_onkeydown" oncloseup="grd_skinsurveylist_oncloseup" autosizingtype="none" extendsizetype="row" onlbuttonup="grd_skinsurveylist_onlbuttonup">
  120. <Formats>
  121. <Format id="default">
  122. <Columns>
  123. <Column size="25" band="left"/>
  124. <Column size="37" band="left"/>
  125. <Column size="105" band="left"/>
  126. <Column size="47" band="left"/>
  127. <Column size="47" band="left"/>
  128. <Column size="65" band="left"/>
  129. <Column size="55" band="left"/>
  130. <Column size="38" band="left"/>
  131. <Column size="162" band="left"/>
  132. <Column size="45"/>
  133. <Column size="45"/>
  134. <Column size="62"/>
  135. <Column size="62"/>
  136. <Column size="34"/>
  137. <Column size="94"/>
  138. <Column size="37"/>
  139. <Column size="37"/>
  140. <Column size="37"/>
  141. <Column size="75"/>
  142. <Column size="67"/>
  143. <Column size="75"/>
  144. <Column size="200"/>
  145. <Column size="0"/>
  146. <Column size="0"/>
  147. <Column size="0"/>
  148. <Column size="0"/>
  149. <Column size="0"/>
  150. <Column size="0"/>
  151. <Column size="0"/>
  152. <Column size="0"/>
  153. <Column size="0"/>
  154. <Column size="0"/>
  155. </Columns>
  156. <Rows>
  157. <Row size="24" band="head"/>
  158. <Row size="24" band="head"/>
  159. <Row size="24"/>
  160. </Rows>
  161. <Band id="head">
  162. <Cell rowspan="2" taborder="undefined"/>
  163. <Cell col="1" rowspan="2" text="상태" taborder="undefined"/>
  164. <Cell col="2" rowspan="2" text="수술일시" taborder="undefined"/>
  165. <Cell col="3" rowspan="2" text="수술방" taborder="undefined"/>
  166. <Cell col="4" rowspan="2" text="집도과" taborder="undefined"/>
  167. <Cell col="5" rowspan="2" text="등록번호" taborder="undefined"/>
  168. <Cell col="6" rowspan="2" text="환자명" taborder="undefined"/>
  169. <Cell col="7" rowspan="2" text="S/A" taborder="undefined"/>
  170. <Cell col="8" rowspan="2" text="수술명(영문)" taborder="undefined"/>
  171. <Cell col="9" rowspan="2" text="집도의" taborder="undefined"/>
  172. <Cell col="10" rowspan="2" text="마취의" taborder="undefined"/>
  173. <Cell col="11" rowspan="2" text="관찰시기" taborder="undefined"/>
  174. <Cell col="12" rowspan="2" text="관찰장소" taborder="undefined"/>
  175. <Cell col="13" rowspan="2" text="이상&#10;유무" taborder="undefined"/>
  176. <Cell col="14" rowspan="2" text="이상부위" taborder="undefined"/>
  177. <Cell col="15" colspan="3" text="크기(cm)" taborder="undefined"/>
  178. <Cell col="18" rowspan="2" text="피부상태" taborder="undefined"/>
  179. <Cell col="19" rowspan="2" text="관찰자" taborder="undefined"/>
  180. <Cell col="20" rowspan="2" text="확인의" taborder="undefined"/>
  181. <Cell col="21" rowspan="2" text="Remark" taborder="undefined"/>
  182. <Cell col="22" text="수술예약번호"/>
  183. <Cell col="23"/>
  184. <Cell col="24"/>
  185. <Cell col="25"/>
  186. <Cell col="26"/>
  187. <Cell col="27"/>
  188. <Cell col="28"/>
  189. <Cell col="29"/>
  190. <Cell col="30"/>
  191. <Cell col="31"/>
  192. <Cell row="1" col="15" text="가로"/>
  193. <Cell row="1" col="16" text="세로"/>
  194. <Cell row="1" col="17" text="깊이"/>
  195. <Cell row="1" col="22" text="수술예약번호"/>
  196. <Cell row="1" col="23"/>
  197. <Cell row="1" col="24"/>
  198. <Cell row="1" col="25"/>
  199. <Cell row="1" col="26"/>
  200. <Cell row="1" col="27"/>
  201. <Cell row="1" col="28"/>
  202. <Cell row="1" col="29"/>
  203. <Cell row="1" col="30"/>
  204. <Cell row="1" col="31"/>
  205. </Band>
  206. <Band id="body">
  207. <Cell celltype="head"/>
  208. <Cell col="1" displaytype="combo" edittype="none" style="align:center middle;font:Dotum,9,bold;" text="bind:recstat" combodataset="ds_cmb_recstat" combocodecol="value" combodatacol="label" combodisplayrowcount="20" enable="false"/>
  209. <Cell col="2" displaytype="date" text="bind:opfromdt" mask="yyyy-MM-dd HH:mm" calendardisplaynulltype="none"/>
  210. <Cell col="3" text="bind:oproomnm"/>
  211. <Cell col="4" text="bind:perfdeptnm"/>
  212. <Cell col="5" text="bind:pid"/>
  213. <Cell col="6" text="bind:hngnm"/>
  214. <Cell col="7" text="bind:sexage"/>
  215. <Cell col="8" style="align:left middle;" text="bind:opnm" autosizerow="limitmin"/>
  216. <Cell col="9" text="bind:perfdrnm"/>
  217. <Cell col="10" text="bind:drnm"/>
  218. <Cell col="11" displaytype="combo" edittype="combo" style="align:center;" text="bind:surveypriod" combodataset="ds_init_M0559" combocodecol="cdid" combodatacol="cdnm" combodisplayrowcount="20"/>
  219. <Cell col="12" displaytype="combo" edittype="combo" style="align:center;" text="bind:surveyplace" combodataset="ds_init_hardcodeinfo" combocodecol="cdid" combodatacol="cdnm" combodisplayrowcount="20"/>
  220. <Cell col="13" displaytype="combo" edittype="combo" style="align:center;" text="bind:trobyn" combodataset="ds_cmd_trobyn" combocodecol="value" combodatacol="label" combodisplayrowcount="20"/>
  221. <Cell col="14" displaytype="text" edittype="expr:trobyn == 'N' ? '' : 'text'" text="bind:trobpart" expandshow="show"/>
  222. <Cell col="15" displaytype="text" edittype="expr:trobyn == 'N' ? '' : 'text'" text="bind:trobwidth" editautoselect="true"/>
  223. <Cell col="16" displaytype="text" edittype="expr:trobyn == 'N' ? '' : 'text'" text="bind:trobheight" editautoselect="true"/>
  224. <Cell col="17" displaytype="text" edittype="expr:trobyn == 'N' ? '' : 'text'" text="bind:troblength" editautoselect="true"/>
  225. <Cell col="18" displaytype="combo" edittype="expr:trobyn == 'N' ? '' : 'combo'" text="bind:skinstat" combodataset="ds_codelist" combocodecol="cdid" combodatacol="cdnm" combodisplayrowcount="20"/>
  226. <Cell col="19" displaytype="text" edittype="text" text="bind:surveynm" expandshow="show"/>
  227. <Cell col="20" displaytype="text" edittype="text" text="bind:cnfmrnm" expandshow="show"/>
  228. <Cell col="21" displaytype="text" edittype="text" text="bind:remark" edituseime="local,keep" editimemode="hangul"/>
  229. <Cell col="22" text="bind:oprsrvno"/>
  230. <Cell col="23" text="bind:surveyid"/>
  231. <Cell col="24" text="bind:cnfmrid"/>
  232. <Cell col="25" text="bind:signno"/>
  233. <Cell col="26" text="bind:opcnfmdd"/>
  234. <Cell col="27" text="bind:cnfmrdeptcd"/>
  235. <Cell col="28" text="bind:cnfmrdeptnm"/>
  236. <Cell col="29" text="bind:surveydeptcd"/>
  237. <Cell col="30" text="bind:surveydeptnm"/>
  238. <Cell col="31" text="bind:seqno"/>
  239. </Band>
  240. </Format>
  241. </Formats>
  242. </Grid>
  243. </Layout>
  244. </Layouts>
  245. <Objects>
  246. <Dataset id="ds_init_rosettelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  247. <ColumnInfo>
  248. <Column id="rosettenm" type="STRING"/>
  249. <Column id="rosettecd" type="STRING"/>
  250. </ColumnInfo>
  251. </Dataset>
  252. <Dataset id="ds_init_oproomlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  253. <ColumnInfo>
  254. <Column id="oproomnm" type="STRING"/>
  255. <Column id="oproomcd" type="STRING"/>
  256. </ColumnInfo>
  257. </Dataset>
  258. <Dataset id="ds_main_skinserveyinfo_skinsurveylist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_main_skinserveyinfo_skinsurveylist_oncolumnchanged">
  259. <ColumnInfo>
  260. <Column id="recstat" type="STRING"/>
  261. <Column id="opfromdt" type="STRING"/>
  262. <Column id="oproomnm" type="STRING"/>
  263. <Column id="perfdeptnm" type="STRING"/>
  264. <Column id="pid" type="STRING"/>
  265. <Column id="hngnm" type="STRING"/>
  266. <Column id="sexage" type="STRING"/>
  267. <Column id="opnm" type="STRING"/>
  268. <Column id="perfdrnm" type="STRING"/>
  269. <Column id="drnm" type="STRING"/>
  270. <Column id="surveypriod" type="STRING"/>
  271. <Column id="surveyplace" type="STRING"/>
  272. <Column id="trobyn" type="STRING"/>
  273. <Column id="trobpart" type="STRING"/>
  274. <Column id="trobwidth" type="STRING"/>
  275. <Column id="trobheight" type="STRING"/>
  276. <Column id="troblength" type="STRING"/>
  277. <Column id="skinstat" type="STRING"/>
  278. <Column id="surveynm" type="STRING"/>
  279. <Column id="cnfmrnm" type="STRING"/>
  280. <Column id="remark" type="STRING"/>
  281. <Column id="oprsrvno" type="STRING"/>
  282. <Column id="surveyid" type="STRING"/>
  283. <Column id="cnfmrid" type="STRING"/>
  284. <Column id="signno" type="STRING"/>
  285. <Column id="opcnfmdd" type="STRING"/>
  286. <Column id="cnfmrdeptcd" type="STRING"/>
  287. <Column id="cnfmrdeptnm" type="STRING"/>
  288. <Column id="surveydeptcd" type="STRING"/>
  289. <Column id="surveydeptnm" type="STRING"/>
  290. <Column id="seqno" type="STRING"/>
  291. </ColumnInfo>
  292. </Dataset>
  293. <Dataset id="ds_grd_excel" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  294. <ColumnInfo>
  295. <Column id="recstat" type="STRING"/>
  296. <Column id="opfromdt" type="STRING"/>
  297. <Column id="oproomnm" type="STRING"/>
  298. <Column id="perfdeptnm" type="STRING"/>
  299. <Column id="pid" type="STRING"/>
  300. <Column id="hngnm" type="STRING"/>
  301. <Column id="sexage" type="STRING"/>
  302. <Column id="opnm" type="STRING"/>
  303. <Column id="perfdrnm" type="STRING"/>
  304. <Column id="drnm" type="STRING"/>
  305. <Column id="surveypriod" type="STRING"/>
  306. <Column id="surveyplace" type="STRING"/>
  307. <Column id="trobyn" type="STRING"/>
  308. <Column id="trobpart" type="STRING"/>
  309. <Column id="trobwidth" type="STRING"/>
  310. <Column id="trobheight" type="STRING"/>
  311. <Column id="troblength" type="STRING"/>
  312. <Column id="skinstat" type="STRING"/>
  313. <Column id="surveynm" type="STRING"/>
  314. <Column id="cnfmrnm" type="STRING"/>
  315. <Column id="remark" type="STRING"/>
  316. </ColumnInfo>
  317. </Dataset>
  318. <Dataset id="ds_main_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  319. <ColumnInfo>
  320. <Column id="fromdd" type="STRING" size="256"/>
  321. <Column id="todd" type="STRING" size="256"/>
  322. <Column id="oprosette" type="STRING" size="256"/>
  323. <Column id="oproomcd" type="STRING" size="256"/>
  324. <Column id="pid" type="STRING" size="256"/>
  325. <Column id="patnm" type="STRING" size="256"/>
  326. </ColumnInfo>
  327. <Rows>
  328. <Row>
  329. <Col id="fromdd"/>
  330. <Col id="todd"/>
  331. <Col id="oprosette"/>
  332. <Col id="oproomcd"/>
  333. <Col id="pid"/>
  334. <Col id="patnm"/>
  335. </Row>
  336. </Rows>
  337. </Dataset>
  338. <Dataset id="ds_cmb_recstat" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  339. <ColumnInfo>
  340. <Column id="label" type="STRING" size="256"/>
  341. <Column id="value" type="STRING" size="256"/>
  342. </ColumnInfo>
  343. <Rows>
  344. <Row>
  345. <Col id="label">임시</Col>
  346. <Col id="value">T</Col>
  347. </Row>
  348. <Row>
  349. <Col id="label">저장</Col>
  350. <Col id="value">S</Col>
  351. </Row>
  352. <Row>
  353. <Col id="label">확정</Col>
  354. <Col id="value">C</Col>
  355. </Row>
  356. <Row>
  357. <Col id="label">삭제</Col>
  358. <Col id="value">D</Col>
  359. </Row>
  360. </Rows>
  361. </Dataset>
  362. <Dataset id="ds_cmd_trobyn" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  363. <ColumnInfo>
  364. <Column id="label" type="STRING" size="256"/>
  365. <Column id="value" type="STRING" size="256"/>
  366. </ColumnInfo>
  367. <Rows>
  368. <Row>
  369. <Col id="label">Y</Col>
  370. <Col id="value">Y</Col>
  371. </Row>
  372. <Row>
  373. <Col id="label">N</Col>
  374. <Col id="value">N</Col>
  375. </Row>
  376. </Rows>
  377. </Dataset>
  378. <Dataset id="ds_codelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  379. <Dataset id="ds_rectrgtinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  380. <ColumnInfo>
  381. <Column id="patinfo" type="STRING" size="256"/>
  382. <Column id="recpid" type="STRING" size="256"/>
  383. <Column id="recoprsrvno" type="STRING" size="256"/>
  384. </ColumnInfo>
  385. <Rows>
  386. <Row>
  387. <Col id="patinfo"/>
  388. <Col id="recpid"/>
  389. <Col id="recoprsrvno"/>
  390. </Row>
  391. </Rows>
  392. </Dataset>
  393. <Dataset id="ds_init_hardcodeinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  394. <ColumnInfo>
  395. <Column id="cdnm" type="STRING" size="256"/>
  396. <Column id="cdid" type="STRING" size="256"/>
  397. </ColumnInfo>
  398. </Dataset>
  399. <Dataset id="ds_patinfo_paminfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  400. <Dataset id="ds_patinfo_operation" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  401. <Dataset id="ds_init_M0559" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  402. <Dataset id="ds_send_signinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  403. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  404. </Objects>
  405. <Bind>
  406. <BindItem id="item0" compid="grp_sea.ipt_fromdd" propid="value" datasetid="ds_main_cond" columnid="fromdd"/>
  407. <BindItem id="item1" compid="grp_sea.ipt_todd" propid="value" datasetid="ds_main_cond" columnid="todd"/>
  408. <BindItem id="item2" compid="grp_sea.cmb_rosette" propid="value" datasetid="ds_main_cond" columnid="oprosette"/>
  409. <BindItem id="item3" compid="grp_sea.cmb_oproomlist" propid="value" datasetid="ds_main_cond" columnid="oproomcd"/>
  410. <BindItem id="item4" compid="grp_sea.ipt_pid" propid="value" datasetid="ds_main_cond" columnid="pid"/>
  411. <BindItem id="item5" compid="opt_recpatinfo" propid="value" datasetid="ds_rectrgtinfo" columnid="patinfo"/>
  412. <BindItem id="item6" compid="output1" propid="value" datasetid="ds_rectrgtinfo" columnid="recoprsrvno"/>
  413. <BindItem id="item7" compid="output2" propid="value" datasetid="ds_rectrgtinfo" columnid="recoprsrvno"/>
  414. </Bind>
  415. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  416. * System Name :
  417. * Job Name :
  418. * Creator :
  419. * Make Date : 2015-05-01
  420. * Description :
  421. *---------------------------------------------------------------------------------------
  422. * Modify Date Modifier Modify Description
  423. *---------------------------------------------------------------------------------------
  424. * 2015-05-01 Live Converter TF->XP
  425. *
  426. *---------------------------------------------------------------------------------------
  427. ****************************************************************************************/
  428. //=======================================================================================
  429. // Lib Include
  430. //---------------------------------------------------------------------------------------
  431. include "com_commonxp::comm_main.xjs";
  432. include "emr_carecomxp::CareCom.xjs";
  433. include "emr_carecomxp::SPMNP00001.xjs";
  434. include "emr_carecomxp::ENRSignEngine.xjs";
  435. //=======================================================================================
  436. // Global Form Variable
  437. //---------------------------------------------------------------------------------------
  438. var sPid = "";
  439. var sSignGernalFlag = "";
  440. var sCretno = "";
  441. var sOrddd = "";
  442. var sOprsrvno = "";
  443. var sOrdDeptCd = "";
  444. var sPerfdrId = "";
  445. var sFormCd = "0900006329";
  446. var lgv_viewmode = "";
  447. //=======================================================================================
  448. // Function
  449. //---------------------------------------------------------------------------------------
  450. /****************************************************************************************
  451. * Argument : N/A
  452. * Description : 화면 Open시 Call 함수, 초기 세팅 함수
  453. ****************************************************************************************/
  454. function fInit(){
  455. ds_main_skinserveyinfo_skinsurveylist.clearData();
  456. ds_main_cond.setColumn(0, "fromdd" , utlf_getCurrentDate());
  457. ds_main_cond.setColumn(0, "todd" , utlf_getCurrentDate());
  458. lgv_viewmode = "S"; //model.setValue("/root/viewmode", "S");
  459. var arrParam = new Array();
  460. arrParam = [{dsNm: "ds_init_M0559", cdGrpId: "M0559", showValue: false}];
  461. appf_getCodeList(arrParam, true);
  462. fGetNursHardCdInfo("'137'", utlf_getCurrentDate());
  463. var oParam = {};
  464. oParam.id = "TRMNP03004";
  465. oParam.service = "opanstapp.OpAnstStocMngt";
  466. oParam.method = "reqGetRosettelist";
  467. //oParam.inds = "";
  468. oParam.outds = "ds_init_rosettelist=rosettelist";
  469. oParam.async = false;
  470. //oParam.callback = "cf_TRMNP03004";
  471. tranf_submit(oParam);
  472. //2009-11-24 K.J.M 관찰장소
  473. dsf_createDsRow("ds_send", [{col:"cdgrupid", type:"STRING", size:256, val:"164"}//피부관찰장소
  474. , {col:"cdid", type:"STRING", size:256, val:""}//서브구분
  475. , {col:"supcdid", type:"STRING", size:256, val:""}//서브구분
  476. , {col:"cdnm", type:"STRING", size:256, val:""}
  477. ]);
  478. var oParam = {};
  479. oParam.id = "TRMNP04903";
  480. oParam.service = "opanstapp.OpAnstRef";
  481. oParam.method = "reqGetOpCommonCd";
  482. oParam.inds = "reqdata=ds_send";
  483. oParam.outds = "ds_init_hardcodeinfo=hardcodeinfo";
  484. oParam.async = false;
  485. //oParam.callback = "cf_TRMNP04903";
  486. tranf_submit(oParam);
  487. dsf_createDsRow("ds_send", [{col:"opcnfmdd", type:"STRING", size:256, val:ds_main_cond.getColumn(0, "fromdd")}
  488. , {col:"rosette", type:"STRING", size:256, val:ds_main_cond.getColumn(0, "oprosette")}]);
  489. var oParam = {};
  490. oParam.id = "TRMNP03002";
  491. oParam.service = "opanstapp.OpAnstCCrtGoodMngt";
  492. oParam.method = "reqGetOmcdlist";
  493. oParam.inds = "req=ds_send";
  494. oParam.outds = "ds_init_oproomlist=oproomlist";
  495. oParam.async = false;
  496. //oParam.callback = "cf_TRMNP03002";
  497. tranf_submit(oParam);// 수술실코드 가져오기
  498. frmf_addComboItem( "grp_sea.cmb_rosette", "전체", "", "above");
  499. frmf_addComboItem( "grp_sea.cmb_oproomlist", "전체", "", "above");
  500. fViewerSetting();
  501. }
  502. /****************************************************************************************
  503. * Argument : N/A
  504. * Description : 피부관찰기록 대상 환자 정보 조회
  505. ****************************************************************************************/
  506. function fGetPatInfo(){
  507. sPid = "";
  508. var RecPatInfo = "";
  509. ds_main_skinserveyinfo_skinsurveylist.clearData();
  510. ds_patinfo_paminfo.clearData();
  511. ds_patinfo_operation.clearData();
  512. var node = sysf_getGlobalVariable("paminfo");
  513. dsf_setCSVToDs("ds_patinfo_paminfo", node);
  514. var node1 = sysf_getGlobalVariable("operation");
  515. dsf_setCSVToDs("ds_patinfo_operation", node1);
  516. sSignGernalFlag = ds_patinfo_paminfo.getColumn(0, "ioflag"); //인증저장시 받아온후 전역변수로 세팅한다.
  517. sPid = ds_patinfo_paminfo.getColumn(0, "pid");
  518. sCretno = ds_patinfo_paminfo.getColumn(0, "cretno");
  519. sOrdDeptCd = ds_patinfo_paminfo.getColumn(0, "orddeptcd");
  520. sPerfdrId = ds_patinfo_paminfo.getColumn(0, "medispclid");
  521. if(sSignGernalFlag == "O"){
  522. sOrddd = ds_patinfo_paminfo.getColumn(0, "orddd");
  523. }else{
  524. sOrddd = ds_patinfo_paminfo.getColumn(0, "indd");
  525. }
  526. if(utlf_isNull(sPid)){
  527. sysf_messageBox("상단 정보가 존재 하지 않습니다. 확인하십시요.", "I");
  528. ds_rectrgtinfo.setColumn(0, "patinfo", "");
  529. ds_rectrgtinfo.setColumn(0, "recpid", "");
  530. ds_rectrgtinfo.setColumn(0, "recoprsrvno", "");
  531. lgv_viewmode = "S";
  532. return;
  533. }else{
  534. lgv_viewmode = "R";
  535. if(ds_patinfo_operation.rowcount < 1){
  536. sysf_messageBox("수술 정보가 존재 하지 않습니다. 확인하십시요.", "I");
  537. ds_rectrgtinfo.setColumn(0, "patinfo", "");
  538. ds_rectrgtinfo.setColumn(0, "recpid", "");
  539. ds_rectrgtinfo.setColumn(0, "recoprsrvno", "");
  540. lgv_viewmode = "S";
  541. return;
  542. }
  543. RecPatInfo = utlf_transNullToEmpty(ds_patinfo_operation.getColumn(0, "pid")) + " "
  544. + utlf_transNullToEmpty(ds_patinfo_paminfo.getColumn(0, "hngnm")) + " "
  545. + utlf_transNullToEmpty(ds_patinfo_paminfo.getColumn(0, "sex")) + "/"
  546. + utlf_transNullToEmpty(ds_patinfo_paminfo.getColumn(0, "age")) + " "
  547. + utlf_transNullToEmpty(ds_patinfo_paminfo.getColumn(0, "roomcd"));
  548. //환자 상단 정보 존재시 임시 노드에 저장
  549. ds_rectrgtinfo.setColumn(0, "recoprsrvno", ds_patinfo_operation.getColumn(0, "oprsrvno"));
  550. ds_rectrgtinfo.setColumn(0, "recpid", sPid);
  551. ds_rectrgtinfo.setColumn(0, "patinfo", RecPatInfo);
  552. }
  553. ds_main_skinserveyinfo_skinsurveylist.clearData();
  554. dsf_createDsRow("ds_send", [{col:"instcd", type:"STRING", size:256, val:sysf_getUserInfo("posinstcd")}
  555. , {col:"fromdd", type:"STRING", size:256, val:""}
  556. , {col:"todd", type:"STRING", size:256, val:""}
  557. , {col:"oprosette", type:"STRING", size:256, val:""}
  558. , {col:"oproomcd", type:"STRING", size:256, val:""}
  559. , {col:"pid", type:"STRING", size:256, val:""}
  560. , {col:"oprsrvno", type:"STRING", size:256, val:ds_patinfo_operation.getColumn(0, "oprsrvno")}
  561. ]);
  562. var oParam = {};
  563. oParam.id = "TRMNP06801";
  564. oParam.service = "opanstapp.OpAnstRec";
  565. oParam.method = "reqGetSkinSurveyRec";
  566. oParam.inds = "req=ds_send";
  567. oParam.outds = "ds_main_skinserveyinfo_skinsurveylist=skinserveylist";
  568. oParam.async = false;
  569. //oParam.callback = "cf_TRMNP06801";
  570. tranf_submit(oParam);
  571. grd_skinsurveylist.vscrollbar.pos = scrollpos;
  572. dsf_createDs("ds_hidden_opinfo", [{col:"recstat", type:"STRING", size:256}
  573. , {col:"oprsrvno", type:"STRING", size:256}
  574. , {col:"opfromdt", type:"STRING", size:256}
  575. , {col:"oproomcd", type:"STRING", size:256}
  576. , {col:"oproomnm", type:"STRING", size:256}
  577. , {col:"perfdeptcd", type:"STRING", size:256}
  578. , {col:"perfdeptnm", type:"STRING", size:256}
  579. , {col:"pid", type:"STRING", size:256}
  580. , {col:"hngnm", type:"STRING", size:256}
  581. , {col:"sexage", type:"STRING", size:256}
  582. , {col:"opnm", type:"STRING", size:256}
  583. , {col:"perfdrid", type:"STRING", size:256}
  584. , {col:"perfdrnm", type:"STRING", size:256}
  585. , {col:"drid", type:"STRING", size:256}
  586. , {col:"drnm", type:"STRING", size:256}
  587. , {col:"opcnfmdd", type:"STRING", size:256}
  588. , {col:"opstatcd", type:"STRING", size:256}]);
  589. dsf_createDsRow("ds_send", [{col:"oprsrvno", type:"STRING", size:256, val:ds_patinfo_operation.getColumn(0, "oprsrvno")}]);
  590. var oParam = {};
  591. oParam.id = "TRMNP06802";
  592. oParam.service = "opanstapp.OpAnstRec";
  593. oParam.method = "reqGetOpInfo";
  594. oParam.inds = "req=ds_send";
  595. oParam.outds = "ds_hidden_opinfo=oplist";
  596. oParam.async = false;
  597. //oParam.callback = "cf_TRMNP06802";
  598. tranf_submit(oParam);
  599. if(ds_hidden_opinfo.getColumn(0, "opstatcd") < "30"){
  600. sysf_messageBox("수술 스케쥴이 예정 상태로 피부관찰기록을 할 수 없습니다.", "I");
  601. lgv_viewmode = "S";
  602. }
  603. fViewerSetting();
  604. fGridCellStyle();
  605. }
  606. /****************************************************************************************
  607. * Argument : N/A
  608. * Description : 화면 설정 처리부분
  609. ****************************************************************************************/
  610. function fViewerSetting(){
  611. ds_main_skinserveyinfo_skinsurveylist.applyChange();
  612. var sViewParam = lgv_viewmode;
  613. switch(sViewParam){
  614. case "S":
  615. if(utlf_isNull(grp_sea.ipt_pid.value)){
  616. grp_sea.ipt_fromdd.value = utlf_getCurrentDate();
  617. grp_sea.ipt_todd.value = utlf_getCurrentDate();
  618. }else{
  619. grp_sea.ipt_fromdd.value = "19000101";
  620. grp_sea.ipt_todd.value = "99991231";
  621. }
  622. btn_addrow.enable = false;
  623. btn_delrow.enable = false;
  624. btn_tmpsave.enable = false;
  625. btn_save.enable = false;
  626. break;
  627. case "R":
  628. var sBtnFlag = "N"; //기본세팅
  629. for(var i = 0 ; i < ds_main_skinserveyinfo_skinsurveylist.rowcount; i++){
  630. if("C" == ds_main_skinserveyinfo_skinsurveylist.getColumn(i, "recstat")){
  631. sBtnFlag = "C";
  632. }
  633. }
  634. //기록내역 중 인증저장 기록 내역이 존재하는 기록이 있을 경우 임시저장 버튼 disabled 처리
  635. if(sBtnFlag == "C"){
  636. btn_tmpsave.enable = false;
  637. }else{
  638. btn_tmpsave.enable = true;
  639. }
  640. btn_addrow.enable = true;
  641. btn_delrow.enable = true;
  642. btn_save.enable = true;
  643. break;
  644. default:
  645. btn_addrow.enable = false;
  646. btn_delrow.enable = false;
  647. btn_tmpsave.enable = false;
  648. btn_save.enable = false;
  649. break;
  650. }
  651. }
  652. /****************************************************************************************
  653. * Argument : N/A
  654. * Description : 피부관찰기록 조회
  655. ****************************************************************************************/
  656. function fSearch(){
  657. if(lgv_viewmode != "S"){
  658. lgv_viewmode = "S";
  659. fViewerSetting();
  660. }
  661. ds_main_skinserveyinfo_skinsurveylist.clearData();
  662. dsf_createDsRow("ds_send", [{col:"instcd", type:"STRING", size:256, val:sysf_getUserInfo("posinstcd")}
  663. , {col:"fromdd", type:"STRING", size:256, val:ds_main_cond.getColumn(0, "fromdd")}
  664. , {col:"todd", type:"STRING", size:256, val:ds_main_cond.getColumn(0, "todd")}
  665. , {col:"oprosette", type:"STRING", size:256, val:ds_main_cond.getColumn(0, "oprosette")}
  666. , {col:"oproomcd", type:"STRING", size:256, val:ds_main_cond.getColumn(0, "oproomcd")}
  667. , {col:"pid", type:"STRING", size:256, val:ds_main_cond.getColumn(0, "pid")}
  668. , {col:"oprsrvno", type:"STRING", size:256, val:""}]);
  669. var oParam = {};
  670. oParam.id = "TRMNP06801";
  671. oParam.service = "opanstapp.OpAnstRec";
  672. oParam.method = "reqGetSkinSurveyRec";
  673. oParam.inds = "req=ds_send";
  674. oParam.outds = "ds_main_skinserveyinfo_skinsurveylist=skinserveylist";
  675. oParam.async = false;
  676. //oParam.callback = "cf_TRMNP06801";
  677. tranf_submit(oParam);
  678. fGridCellStyle();
  679. }
  680. /****************************************************************************************
  681. * Argument : N/A
  682. * Description : 피부관찰기록 그리드 Style 적용
  683. ****************************************************************************************/
  684. function fGridCellStyle(){
  685. var objExt = new ExtCommon();
  686. var arrRow = objExt.findRows(ds_main_skinserveyinfo_skinsurveylist, "recstat", "T");
  687. grdf_setStatus(grd_skinsurveylist, "I", arrRow)
  688. }
  689. /****************************************************************************************
  690. * Argument : N/A
  691. * Description : 피부관찰기록 이상유무 선택시 이벤트 처리
  692. ****************************************************************************************/
  693. function fChngTrobYn(pRow){
  694. if(ds_main_skinserveyinfo_skinsurveylist.getColumn(pRow, "trobyn") == "N"){
  695. ds_main_skinserveyinfo_skinsurveylist.setColumn(pRow, "trobpart", "");
  696. ds_main_skinserveyinfo_skinsurveylist.setColumn(pRow, "trobwidth", "");
  697. ds_main_skinserveyinfo_skinsurveylist.setColumn(pRow, "trobheight", "");
  698. ds_main_skinserveyinfo_skinsurveylist.setColumn(pRow, "troblength", "");
  699. ds_main_skinserveyinfo_skinsurveylist.setColumn(pRow, "skinstat", "");
  700. }
  701. }
  702. /****************************************************************************************
  703. * Argument : N/A
  704. * Description : 피부관찰기록 행 추가 처리
  705. ****************************************************************************************/
  706. function fInsertRow(){
  707. if(lgv_viewmode == "S"){
  708. return;
  709. }
  710. dsf_createDs("ds_hidden_opinfo", [{col:"recstat", type:"STRING", size:256}
  711. , {col:"oprsrvno", type:"STRING", size:256}
  712. , {col:"opfromdt", type:"STRING", size:256}
  713. , {col:"oproomcd", type:"STRING", size:256}
  714. , {col:"oproomnm", type:"STRING", size:256}
  715. , {col:"perfdeptcd", type:"STRING", size:256}
  716. , {col:"perfdeptnm", type:"STRING", size:256}
  717. , {col:"pid", type:"STRING", size:256}
  718. , {col:"hngnm", type:"STRING", size:256}
  719. , {col:"sexage", type:"STRING", size:256}
  720. , {col:"opnm", type:"STRING", size:256}
  721. , {col:"perfdrid", type:"STRING", size:256}
  722. , {col:"perfdrnm", type:"STRING", size:256}
  723. , {col:"drid", type:"STRING", size:256}
  724. , {col:"drnm", type:"STRING", size:256}
  725. , {col:"opcnfmdd", type:"STRING", size:256}
  726. , {col:"opstatcd", type:"STRING", size:256}]);
  727. dsf_createDsRow("ds_send", [{col:"oprsrvno", type:"STRING", size:256, val:ds_patinfo_operation.getColumn(0, "oprsrvno")}]);
  728. var oParam = {};
  729. oParam.id = "TRMNP06802";
  730. oParam.service = "opanstapp.OpAnstRec";
  731. oParam.method = "reqGetOpInfo";
  732. oParam.inds = "req=ds_send";
  733. oParam.outds = "ds_hidden_opinfo=oplist";
  734. oParam.async = false;
  735. //oParam.callback = "cf_TRMNP06802";
  736. tranf_submit(oParam);
  737. if(ds_hidden_opinfo.rowcount < 1 ){
  738. return;
  739. }
  740. ds_main_skinserveyinfo_skinsurveylist.enableevent = false;
  741. var nRow = ds_main_skinserveyinfo_skinsurveylist.addRow();
  742. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "recstat", "T");
  743. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "opfromdt", ds_hidden_opinfo.getColumn(0, "opfromdt"));
  744. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "oproomnm", ds_hidden_opinfo.getColumn(0, "oproomnm"));
  745. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "perfdeptnm", ds_hidden_opinfo.getColumn(0, "perfdeptnm"));
  746. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "pid", ds_hidden_opinfo.getColumn(0, "pid"));
  747. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "hngnm", ds_hidden_opinfo.getColumn(0, "hngnm"));
  748. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "sexage", ds_hidden_opinfo.getColumn(0, "sexage"));
  749. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "opnm", ds_hidden_opinfo.getColumn(0, "opnm"));
  750. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "perfdrnm", ds_hidden_opinfo.getColumn(0, "perfdrnm"));
  751. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "drnm", ds_hidden_opinfo.getColumn(0, "drnm"));
  752. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "oprsrvno", ds_hidden_opinfo.getColumn(0, "oprsrvno"));
  753. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "trobyn", "N");
  754. ds_main_skinserveyinfo_skinsurveylist.setColumn(nRow, "seqno", 0);
  755. ds_main_skinserveyinfo_skinsurveylist.enableevent = true;
  756. fGridCellStyle();
  757. }
  758. /****************************************************************************************
  759. * Argument : N/A
  760. * Description : 피부관찰기록 행 삭제 처리
  761. ****************************************************************************************/
  762. function fDeleteRow(pRow){
  763. if(ds_main_skinserveyinfo_skinsurveylist.getColumn(pRow, "recstat") == "T"){
  764. ds_main_skinserveyinfo_skinsurveylist.setColumn(pRow, "recstat", "X");
  765. }else{
  766. ds_main_skinserveyinfo_skinsurveylist.setColumn(pRow, "recstat", "D");
  767. grdf_setStatus(grd_skinsurveylist, "D", [pRow])
  768. }
  769. fGridCellStyle();
  770. }
  771. /****************************************************************************************
  772. * Argument : N/A
  773. * Description : 피부관찰기록 그리드 정보 출력
  774. ****************************************************************************************/
  775. function fPrint(){
  776. if(ds_main_skinserveyinfo_skinsurveylist.rowcount < 1){
  777. sysf_messageBox("출력할 정보가 존재하지 않습니다.","I");
  778. return;
  779. }
  780. dsf_createDs("ds_prntdata");
  781. ds_prntdata.copyData(ds_main_skinserveyinfo_skinsurveylist);
  782. var sPrntPath = "/root/prntdata/skinserveylist";
  783. for(var i = 0 ; i < ds_prntdata.rowcount; i++){
  784. var sSurveyPriod = ds_prntdata.getColumn(i, "surveypriod");
  785. var sSurveyPlace = ds_prntdata.getColumn(i, "surveyplace");
  786. var sSkinStat = ds_prntdata.getColumn(i, "skinstat");
  787. if( sSurveyPriod != "-" && !utlf_isNull(sSurveyPriod) ){
  788. ds_prntdata.setColumn(i, "surveypriod", ds_init_M0559.lookup("cdid", sSurveyPriod, "cdnm"));
  789. }
  790. if( sSurveyPlace != "-" && !utlf_isNull(sSurveyPlace) ){
  791. ds_prntdata.setColumn(i, "surveyplace", ds_init_hardcodeinfo.lookup("cdid", sSurveyPlace, "cdnm"));
  792. }
  793. if(!utlf_isNull(sSkinStat) ){
  794. ds_prntdata.setColumn(i, "skinstat", ds_codelist.lookup("cdid", sSkinStat, "cdnm"));
  795. }
  796. }
  797. var objDOM = rptf_createDOM(); // DOM 객체 설정
  798. rptf_setNodeListToDOM(objDOM, "/root/prntdata/skinserveylist", ds_prntdata); // 데이터셋 1
  799. var objParam = new Object();
  800. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  801. var option = "open=1;save=1;directprint=0;printdailog=0;print=1;zoom=0;";
  802. rptf_exeReportPreview30(["RPMNP06800"],[objParam], option);
  803. }
  804. /****************************************************************************************
  805. * Argument : N/A
  806. * Description : 피부관찰기록 그리드 정보 엑셀저장
  807. ****************************************************************************************/
  808. function fSaveExcel(){
  809. if(ds_main_skinserveyinfo_skinsurveylist.rowcount < 1){
  810. sysf_messageBox("Excel 출력할 정보가 존재하지 않습니다.","I");
  811. return;
  812. }
  813. grdf_exportExcel(grd_skinsurveylist, "피부관찰기록_"+utlf_getCurrentDate(), "Sheet1");
  814. }
  815. var scrollpos;
  816. /****************************************************************************************
  817. * Argument : N/A
  818. * Description : 피부관찰기록 임시저장 또는 인증저장 처리
  819. ****************************************************************************************/
  820. function fSave(pFlag){
  821. scrollpos = ds_main_skinserveyinfo_skinsurveylist.rowposition;
  822. //저장시 상단정보 재조회
  823. ds_patinfo_paminfo.clearData();
  824. ds_patinfo_operation.clearData();
  825. var node = sysf_getGlobalVariable("paminfo");
  826. dsf_setCSVToDs("ds_patinfo_paminfo", node);
  827. var node1 = sysf_getGlobalVariable("operation");
  828. dsf_setCSVToDs("ds_patinfo_operation", node1);
  829. //상단정보와 기록 대상 환자 정보 일치 확인
  830. if(ds_rectrgtinfo.getColumn(0, "recpid") != ds_patinfo_paminfo.getColumn(0, "pid")){
  831. sysf_messageBox("상단 환자정보와 기록할 환자정보가 불일치 하여 저장 할 수 없습니다.", "I");
  832. return;
  833. }
  834. if(ds_rectrgtinfo.getColumn(0, "recoprsrvno") != ds_patinfo_operation.getColumn(0, "oprsrvno")){
  835. sysf_messageBox("상단 수술정보와 기록할 수술정보가 불일치 하여 저장 할 수 없습니다.", "I");
  836. return;
  837. }
  838. switch(pFlag){
  839. case "T":
  840. break;
  841. case "C":
  842. //인증저장 번호 추출 및 기록 필수 조건 블럭킹
  843. var sSignNo = "";
  844. for(var i = 0; i < ds_main_skinserveyinfo_skinsurveylist.rowcount ; i++){
  845. if(utlf_isNull(ds_main_skinserveyinfo_skinsurveylist.getColumn(i, "surveypriod"))){
  846. sysf_messageBox("관찰시기 항목은 필수 입력 항목입니다.", "I");
  847. return;
  848. }
  849. if(utlf_isNull(ds_main_skinserveyinfo_skinsurveylist.getColumn(i, "surveyplace"))){
  850. sysf_messageBox("관찰장소 항목은 필수 입력 항목입니다.", "I");
  851. return;
  852. }
  853. if(utlf_isNull(ds_main_skinserveyinfo_skinsurveylist.getColumn(i, "surveynm"))){
  854. sysf_messageBox("관찰자 항목은 필수 입력 항목입니다.", "I");
  855. return;
  856. }
  857. if(utlf_isNull(ds_main_skinserveyinfo_skinsurveylist.getColumn(i, "cnfmrnm"))){
  858. sysf_messageBox("확인의 항목은 필수 입력 항목입니다.", "I");
  859. return;
  860. }
  861. if(ds_main_skinserveyinfo_skinsurveylist.getColumn(i, "trobyn") == "Y" &&
  862. utlf_isNull(ds_main_skinserveyinfo_skinsurveylist.getColumn(i, "skinstat")) ){
  863. sysf_messageBox("이상유무 'Y'일 경우 피부상태는 필수 입력 항목입니다.", "I");
  864. return;
  865. }
  866. if( !utlf_isNull(ds_main_skinserveyinfo_skinsurveylist.getColumn(i, "signno")) ){
  867. sSignNo = ds_main_skinserveyinfo_skinsurveylist.getColumn(i, "signno");
  868. }
  869. //new 확인필요
  870. // if(grd_skinsurveylist.rowStatus(i) == 0){
  871. // grd_skinsurveylist.rowStatus(i) = 2;
  872. // }
  873. }
  874. Sign.certreload = true;
  875. if (Sign.signprocess() == true){ // ▶ 전자인증 관련 환자 인적 정보를 보내줌.
  876. var wSigninfo
  877. = "pid" +"▦" // 01 등록번호
  878. + "orddd" +"▦" // 02 입원일자(입원,응급)/진료일자(외래)
  879. + "cretno" +"▦" // 03 생성번호
  880. + "signno" +"▦" // 04 서명번호(인증번호)
  881. + "recdd" +"▦" // 05 실제 기록이 이루어진 기록일자
  882. + "rectm" +"▦" // 06 실제 기록이 이루어진 기록시간
  883. + "recsaveflag" +"▦" // 07 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  884. + "signflag" +"▦" // 08 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  885. + "signgenrflag" +"▦" // 09 외래/입원구분(코드정의서 M0010 참조)
  886. + "formcd" +"▦" // 10 각 기록지별 서식코드
  887. + "orddeptcd" +"▦" // 11 진료부서코드
  888. + "orddrid" +"▦" // 12 진료의사ID (집도의)
  889. + "signbfcnts" +"▦" // 13 ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  890. + "signaftcnts" +"▩" // 14 ▶ 공인인증 처리후 데이터
  891. + sPid +"▦" // 01 등록번호
  892. + sOrddd +"▦" // 02 입원일자(입원,응급)/진료일자(외래)
  893. + sCretno +"▦" // 03 생성번호
  894. + sSignNo +"▦" // 04 서명번호(인증번호)
  895. + utlf_getCurrentDate() +"▦" // 05 실제 기록이 이루어진 기록일자
  896. + utlf_getCurrentTime() +"▦" // 06 실제 기록이 이루어진 기록시간
  897. + "N" +"▦" // 07 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  898. + "02" +"▦" // 08 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  899. + sSignGernalFlag +"▦" // 09 외래/입원구분(코드정의서 M0010 참조)
  900. + sFormCd +"▦" // 10 각 기록지별 서식코드
  901. + sOrdDeptCd +"▦" // 11 진료부서코드
  902. + sPerfdrId +"▦" // 12 진료의사ID (집도의)
  903. + Sign.signedInfos[1] +"▦" // 13 ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  904. + Sign.signedInfos[2] +"▩"; // 14 ▶ 공인인증 처리후 데이터
  905. dsf_setCSVToDs("ds_send_signinfo", wSigninfo);
  906. }
  907. break;
  908. }
  909. grdf_setStatusColumn(ds_main_skinserveyinfo_skinsurveylist, "status");
  910. var oParam = {};
  911. oParam.id = "TXMNP06801";
  912. oParam.service = "opanstapp.OpAnstRec";
  913. oParam.method = "reqExeSkinRec";
  914. oParam.inds = "recsavedata=ds_main_skinserveyinfo_skinsurveylist:U signinfo=ds_send_signinfo";
  915. //oParam.outds = "";
  916. oParam.async = false;
  917. oParam.callback = "cf_TXMNP06801";
  918. oParam.typeStr = "status";
  919. tranf_submit(oParam);
  920. }
  921. function cf_TXMNP06801(sSvcId, nErrorCode, sErrorMsg) {
  922. if(nErrorCode < 0) return;
  923. fGetPatInfo();
  924. }
  925. /****************************************************************************************
  926. * Argument : N/A
  927. * Description : ※ 인증데이터 생성함수 만들기
  928. ****************************************************************************************/
  929. function fMake_SignData(){
  930. //Sign.addnode("/root/main/skinserveyinfo");
  931. dsf_createDs("ds_signinfo");
  932. ds_signinfo.copyData(ds_main_skinserveyinfo_skinsurveylist);
  933. for(var i = 0 ; i < ds_signinfo.rowcount; i++){
  934. var sSurveyPriod = ds_signinfo.getColumn(i, "surveypriod");
  935. var sSurveyPlace = ds_signinfo.getColumn(i, "surveyplace");
  936. var sSkinStat = ds_signinfo.getColumn(i, "skinstat");
  937. if( sSurveyPriod != "-" && !utlf_isNull(sSurveyPriod) ){
  938. ds_signinfo.setColumn(i, "surveypriod", ds_init_M0559.lookup("cdid", sSurveyPriod, "cdnm"));
  939. }
  940. if( sSurveyPlace != "-" && !utlf_isNull(sSurveyPlace) ){
  941. ds_signinfo.setColumn(i, "surveyplace", ds_init_hardcodeinfo.lookup("cdid", sSurveyPlace, "cdnm"));
  942. }
  943. if(!utlf_isNull(sSkinStat) ){
  944. ds_signinfo.setColumn(i, "skinstat", ds_codelist.lookup("cdid", sSkinStat, "cdnm"));
  945. }
  946. }
  947. Sign.addnode("/skinserveyinfo/skinserveylist", ds_signinfo.saveXML());
  948. dsf_deleteDs("ds_signinfo");
  949. }
  950. /****************************************************************************************
  951. * Argument : N/A
  952. * Description : 피부관찰기록 그리드 버튼 클릭 이벤트 처리
  953. 이상부위 -> 부위 선택 화면 호출
  954. 관찰자, 확인의 -> 사용자 조회 화면 호출
  955. ****************************************************************************************/
  956. function fGridOnButtonClickEvent(iCol){
  957. if ( iCol < 0 ){
  958. return;
  959. }
  960. if( iCol == grd_skinsurveylist.getBindCellIndex("body", "trobpart")) {
  961. //부위 표시 POPUP 호출
  962. sysf_trace("asdf")
  963. fPopupBedSoreImg(iCol);
  964. }
  965. if( iCol == grd_skinsurveylist.getBindCellIndex("body", "surveynm")) {
  966. var iRow = ds_main_skinserveyinfo_skinsurveylist.rowposition;
  967. var sSearchdd = ds_patinfo_operation.getColumn(0, "opcnfmdd");
  968. var sChargerNm = "";
  969. var sSurveyid = ds_main_skinserveyinfo_skinsurveylist.getColumn(iRow, "surveyid");
  970. var sSurveynm = ds_main_skinserveyinfo_skinsurveylist.getColumn(iRow, "surveynm");
  971. fUseridPopup(ds_main_skinserveyinfo_skinsurveylist, iRow, "surveyid", "surveynm", "" , "", grd_skinsurveylist, "", sSearchdd);
  972. grd_skinsurveylist.showEditor(false);
  973. return;
  974. }
  975. if( iCol == grd_skinsurveylist.getBindCellIndex("body", "cnfmrnm")) {
  976. var iRow = ds_main_skinserveyinfo_skinsurveylist.rowposition;
  977. var sSearchdd = ds_patinfo_operation.getColumn(0, "opcnfmdd");
  978. var sChargerNm = "";
  979. var sCnfmrid = ds_main_skinserveyinfo_skinsurveylist.getColumn(iRow, "cnfmrid");
  980. var sCnfmrnm = ds_main_skinserveyinfo_skinsurveylist.getColumn(iRow, "cnfmrnm");
  981. fUseridPopup(ds_main_skinserveyinfo_skinsurveylist, iRow, "cnfmrid", "cnfmrnm", "" , "", grd_skinsurveylist, "", sSearchdd);
  982. grd_skinsurveylist.showEditor(false);
  983. return;
  984. }
  985. }
  986. /****************************************************************************************
  987. * Argument : N/A
  988. * Description : 관찰자, 확인의 이름 및 사용자 번호 입력값에 대한 정보 조회
  989. ****************************************************************************************/
  990. function fUserSelect(pRow, pCol){
  991. var nRow = pRow;
  992. var rUserNmColnm = "";
  993. var rUserIdColnm = "";
  994. var rPath = this.objects["ds_main_skinserveyinfo_skinsurveylist"];
  995. if(rPath.getColumnInfo(pCol).name == "surveynm"){
  996. rUserNmColnm = "surveynm";
  997. rUserIdColnm = "surveyid";
  998. rDeptNmColnm = "surveydeptnm";
  999. rDeptCdColnm = "surveydeptcd";
  1000. var wNode = "020";
  1001. }else{
  1002. rUserNmColnm = "cnfmrnm";
  1003. rUserIdColnm = "cnfmrid";
  1004. rDeptNmColnm = "cnfmrdeptnm";
  1005. rDeptCdColnm = "cnfmrdeptcd";
  1006. var wNode = "011";
  1007. }
  1008. var rUserInfo = utlf_transNullToEmpty(rPath.getColumn(nRow, rUserNmColnm)).replace(/(^\s*)|(\s*$)/g, "");
  1009. rPath.setColumn(nRow, rUserNmColnm, "");
  1010. // cellStyle 확인 필요
  1011. if (utlf_isNull(rUserInfo)) {
  1012. //grd_skinsurveylist.cellStyle("color", pRow, pCol, pRow, pCol) = "";
  1013. return;
  1014. }
  1015. //var wNode = "011";
  1016. var sSearchdd = ds_patinfo_operation.getColumn(0, "opcnfmdd");
  1017. //특정일자에 근무했던 정보를 가져오도록 수정
  1018. fUserEnter(rPath, pRow, rUserIdColnm , rUserNmColnm, rDeptNmColnm, rDeptCdColnm, rUserInfo, grd_skinsurveylist, "all", wNode, sSearchdd);
  1019. //정보가 없을 경우에는 빈칸으로 들어가서 edit 모드로 변경함.
  1020. if (utlf_isNull(rPath.getColumn(nRow, rUserIdColnm))) {
  1021. rPath.setColumn(pRow, pCol, "");
  1022. grd_skinsurveylist.showEditor(true);
  1023. } else {
  1024. grd_skinsurveylist.showEditor(false);
  1025. //grd_skinsurveylist.cellStyle("color", pRow, pCol, pRow, pCol) = "";
  1026. }
  1027. }
  1028. /****************************************************************************************
  1029. * Argument : N/A
  1030. * Description : 이상부위 선택 popup화면 호출
  1031. ****************************************************************************************/
  1032. function fPopupBedSoreImg(pCol){
  1033. var iRow = ds_main_skinserveyinfo_skinsurveylist.rowposition;
  1034. var iCol = pCol;
  1035. //팝업창에 부위 값이 있으면 기존값 셋팅
  1036. //이미저장되어있으면 수정하지 못하도록 확인버튼을 막아주는 flag를 set한다.
  1037. //var PartTail = grd_skinsurveylist.textmatrix(iRow,grd_skinsurveylist.colRef("trobpart"));
  1038. var PartTail = utlf_transNullToEmpty(ds_main_skinserveyinfo_skinsurveylist.getColumn(iRow, "trobpart"));
  1039. if(utlf_isSearchString(PartTail, "(R)") == true){
  1040. PartTail = PartTail.replace("(R)", ",(R),");
  1041. }
  1042. if(utlf_isSearchString(PartTail, "(L)") == true){
  1043. PartTail = PartTail.replace("(L)", ",(L),");
  1044. }
  1045. WordLen = utlf_getStringLength(PartTail);
  1046. if( PartTail.substr(WordLen -1, WordLen) ==","){
  1047. PartTail = PartTail.substr(0, WordLen -1);
  1048. }
  1049. frmf_setParameter("partall", PartTail);
  1050. frmf_setParameter('editable', 't');
  1051. //modal("SPMNP06800",1, event.screenX-200, event.screenY+50); //이미지호출
  1052. frmf_modal("SPMNP06800", "SPMNP06800", null, false, 1, grd_skinsurveylist.position.x + 50, grd_skinsurveylist.position.y + 50, null, null, null, null, null, "M");
  1053. //팝업에서 아무것도 선택하지 않고 close를 눌렀을때..
  1054. if( frmf_getParameter("returnnull") == "close" ){
  1055. return ;
  1056. } else {
  1057. //욕창발생부위 값을 grid에 set
  1058. var retStr = utlf_transNullToEmpty(frmf_getParameter('retStr'));
  1059. ds_main_skinserveyinfo_skinsurveylist.setColumn(iRow, "trobpart", retStr);
  1060. //그리드 상태값 변경
  1061. // if(grd_skinsurveylist.rowStatus(iRow) == 0){
  1062. // grd_skinsurveylist.rowStatus(iRow) = 2;
  1063. // }
  1064. }
  1065. }
  1066. //=======================================================================================
  1067. // Transaction Callback
  1068. //---------------------------------------------------------------------------------------
  1069. /****************************************************************************************
  1070. * Argument : 01.sSvcId : 서비스 ID
  1071. * : 02.nErrorCode : 에러코드
  1072. * : 03.sErrorMsg : 에러메시지
  1073. * Description : tr_getCodeList의 콜백함수
  1074. ****************************************************************************************/
  1075. function cbf_tr_getCodeList(sSvcId, nErrorCode, sErrorMsg){
  1076. }
  1077. //=======================================================================================
  1078. // Event
  1079. //---------------------------------------------------------------------------------------
  1080. /****************************************************************************************
  1081. * Components : Form
  1082. * Components ID : SMMNP06800
  1083. * Event : onload
  1084. * Argument : 01.obj : Object Event has occurred
  1085. * : 02.e : Event Object
  1086. * Description : 화면 초기화
  1087. ****************************************************************************************/
  1088. function SMMNP06800_onload(obj:Form, e:LoadEventInfo)
  1089. {
  1090. frmf_initForm(obj);
  1091. grdf_initGrid(grd_skinsurveylist);
  1092. grdf_setRowTypeIcon(grd_skinsurveylist, 0);
  1093. grdf_setToolTipBind(grd_skinsurveylist);
  1094. //fInit();
  1095. this.setTimer(0, 100);
  1096. Sign.init();
  1097. }
  1098. /****************************************************************************************
  1099. * Components : Combo
  1100. * Components ID : grp_sea.cmb_rosette
  1101. * Event : onitemchanged
  1102. * Argument : 01.obj : Object Event has occurred
  1103. * : 02.e : Event Object
  1104. * Description : 수술방 변경 이벤트
  1105. ****************************************************************************************/
  1106. function grp_sea_cmb_rosette_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  1107. {
  1108. dsf_createDsRow("ds_send", [{col:"opcnfmdd", type:"STRING", size:256, val:ds_main_cond.getColumn(0, "fromdd")}
  1109. , {col:"rosette", type:"STRING", size:256, val:ds_main_cond.getColumn(0, "oprosette")}]);
  1110. var oParam = {};
  1111. oParam.id = "TRMNP03002";
  1112. oParam.service = "opanstapp.OpAnstCCrtGoodMngt";
  1113. oParam.method = "reqGetOmcdlist";
  1114. oParam.inds = "req=ds_send";
  1115. oParam.outds = "ds_init_oproomlist=oproomlist";
  1116. oParam.async = false;
  1117. oParam.callback = "cf_TRMNP03002";
  1118. tranf_submit(oParam);// 수술실코드 가져오기
  1119. }
  1120. function cf_TRMNP03002(sSvcId, nErrorCode, sErrorMsg) {
  1121. if(nErrorCode < 0) return;
  1122. frmf_addComboItem( "grp_sea.cmb_oproomlist", "전체", "", "above");
  1123. grp_sea.cmb_oproomlist.value = "";
  1124. }
  1125. /****************************************************************************************
  1126. * Components : Edit
  1127. * Components ID : grp_sea.ipt_pid
  1128. * Event : onrbuttonup
  1129. * Argument : 01.obj : Object Event has occurred
  1130. * : 02.e : Event Object
  1131. * Description : 환자명/등록번호로 조회
  1132. ****************************************************************************************/
  1133. function grp_sea_ipt_pid_onkeyup(obj:Edit, e:KeyEventInfo)
  1134. {
  1135. obj.updateToDataset();
  1136. if( e.keycode == 13 )
  1137. grp_sea.btn_srch.click();
  1138. }
  1139. /****************************************************************************************
  1140. * Components : Button
  1141. * Components ID : grp_sea.btn_srch
  1142. * Event : onclick
  1143. * Argument : 01.obj : Object Event has occurred
  1144. * : 02.e : Event Object
  1145. * Description : 수술환자피부관찰 대상자 조회
  1146. ****************************************************************************************/
  1147. function grp_sea_btn_srch_onclick(obj:Button, e:ClickEventInfo)
  1148. {
  1149. fSearch();
  1150. }
  1151. /****************************************************************************************
  1152. * Components : Grid
  1153. * Components ID : grd_skinsurveylist
  1154. * Event : onexpanddown
  1155. * Argument : 01.obj : Object Event has occurred
  1156. * : 02.e : Event Object
  1157. * Description : 그리드 버튼 클릭 이벤트
  1158. ****************************************************************************************/
  1159. function grd_skinsurveylist_onexpanddown(obj:Grid, e:GridMouseEventInfo)
  1160. {
  1161. sysf_trace("1111")
  1162. fGridOnButtonClickEvent(e.col);
  1163. }
  1164. /****************************************************************************************
  1165. * Components : Dataset
  1166. * Components ID : ds_main_skinserveyinfo_skinsurveylist
  1167. * Event : oncolumnchanged
  1168. * Argument : 01.obj : Object Event has occurred
  1169. * : 02.e : Event Object
  1170. * Description : 그리드 값 변경에 따른 이벤트
  1171. ****************************************************************************************/
  1172. function ds_main_skinserveyinfo_skinsurveylist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  1173. {
  1174. //trace("ds_main_skinserveyinfo_skinsurveylist_oncolumnchanged");
  1175. // Grid xforms-value-changed
  1176. if( e.columnid == "surveynm" || e.columnid == "cnfmrnm") {
  1177. fUserSelect(e.row, e.col); //사원찾기
  1178. }else if(e.columnid == "trobyn"){
  1179. fChngTrobYn(e.row);
  1180. }
  1181. }
  1182. /****************************************************************************************
  1183. * Components : Button
  1184. * Components ID : btn_chgnmode
  1185. * Event : onclick
  1186. * Argument : 01.obj : Object Event has occurred
  1187. * : 02.e : Event Object
  1188. * Description : 기록모드 버튼
  1189. ****************************************************************************************/
  1190. function btn_chgnmode_onclick(obj:Button, e:ClickEventInfo)
  1191. {
  1192. fGetPatInfo();
  1193. }
  1194. /****************************************************************************************
  1195. * Components : Button
  1196. * Components ID : btn_addrow
  1197. * Event : onclick
  1198. * Argument : 01.obj : Object Event has occurred
  1199. * : 02.e : Event Object
  1200. * Description : 행추가 버튼
  1201. ****************************************************************************************/
  1202. function btn_addrow_onclick(obj:Button, e:ClickEventInfo)
  1203. {
  1204. fInsertRow();
  1205. }
  1206. /****************************************************************************************
  1207. * Components : Button
  1208. * Components ID : btn_delrow
  1209. * Event : onclick
  1210. * Argument : 01.obj : Object Event has occurred
  1211. * : 02.e : Event Object
  1212. * Description : 행삭제 버튼
  1213. ****************************************************************************************/
  1214. function btn_delrow_onclick(obj:Button, e:ClickEventInfo)
  1215. {
  1216. var nRow = ds_main_skinserveyinfo_skinsurveylist.rowposition;
  1217. var nCnt = ds_main_skinserveyinfo_skinsurveylist.rowcount;
  1218. if(nRow < 0 || nCnt == 0){
  1219. sysf_messageBox("기록삭제 할 기록 정보를 선택하십시요", "I");
  1220. return;
  1221. }else{
  1222. fDeleteRow(nRow);
  1223. }
  1224. }
  1225. /****************************************************************************************
  1226. * Components : Button
  1227. * Components ID : btn_tmpsave
  1228. * Event : onclick
  1229. * Argument : 01.obj : Object Event has occurred
  1230. * : 02.e : Event Object
  1231. * Description : 임시저장 버튼
  1232. ****************************************************************************************/
  1233. function btn_tmpsave_onclick(obj:Button, e:ClickEventInfo)
  1234. {
  1235. var vpos = grd_skinsurveylist.vscrollbar.pos;
  1236. var hpos = grd_skinsurveylist.hscrollbar.pos;
  1237. fSave("T");
  1238. grd_skinsurveylist.vscrollbar.pos = vpos;
  1239. grd_skinsurveylist.hscrollbar.pos = hpos;
  1240. }
  1241. /****************************************************************************************
  1242. * Components : Button
  1243. * Components ID : btn_save
  1244. * Event : onclick
  1245. * Argument : 01.obj : Object Event has occurred
  1246. * : 02.e : Event Object
  1247. * Description : 인증저장 버튼
  1248. ****************************************************************************************/
  1249. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  1250. {
  1251. var vpos = grd_skinsurveylist.vscrollbar.pos;
  1252. var hpos = grd_skinsurveylist.hscrollbar.pos;
  1253. fSave("C");
  1254. grd_skinsurveylist.vscrollbar.pos = vpos;
  1255. grd_skinsurveylist.hscrollbar.pos = hpos;
  1256. }
  1257. /****************************************************************************************
  1258. * Components : Button
  1259. * Components ID : btn_print
  1260. * Event : onclick
  1261. * Argument : 01.obj : Object Event has occurred
  1262. * : 02.e : Event Object
  1263. * Description : 출력버튼
  1264. ****************************************************************************************/
  1265. function btn_print_onclick(obj:Button, e:ClickEventInfo)
  1266. {
  1267. fPrint();
  1268. }
  1269. /****************************************************************************************
  1270. * Components : Button
  1271. * Components ID : btn_saveexcel
  1272. * Event : onclick
  1273. * Argument : 01.obj : Object Event has occurred
  1274. * : 02.e : Event Object
  1275. * Description : 엑셀저장 버튼
  1276. ****************************************************************************************/
  1277. function btn_saveexcel_onclick(obj:Button, e:ClickEventInfo)
  1278. {
  1279. fSaveExcel();
  1280. }
  1281. var lastrow1 = -1;
  1282. var lastcol1 = -1;
  1283. var bDrop1 = false;
  1284. /****************************************************************************************
  1285. * Components : Grid
  1286. * Components ID : grd_skinsurveylist
  1287. * Event : oncellclick
  1288. * Argument : 01.obj : Object Event has occurred
  1289. * : 02.e : Event Object
  1290. * Description : Grid ExpandButton Click Event
  1291. ****************************************************************************************/
  1292. function grd_skinsurveylist_oncellclick(obj:Grid, e:GridClickEventInfo)
  1293. {
  1294. lastrow1 = -1;
  1295. lastcol1 = -1;
  1296. var nColCnt = obj.getCellCount("body");
  1297. var rSize = 0;
  1298. if( obj.getCellProperty("body", e.col, "expandshow") != "show"
  1299. || (obj.getCellProperty("body", e.col, "edittype") != "text" && obj.getCellProperty("body", e.col, "edittype").indexOf("expr") < -1)) return;
  1300. // expr 사용으로 인해 처리로직 추가
  1301. if( e.col == obj.getBindCellIndex("body", "trobpart")
  1302. && ds_main_skinserveyinfo_skinsurveylist.getColumn(e.row, "trobyn") != "Y" ) return;
  1303. var hspos = obj.hscrollbar.pos;
  1304. var tspos = 0;
  1305. for( var i=0; i<nColCnt; i++){
  1306. if( obj.getFormatColProperty(i, "band") != "left" && hspos > 0 && hspos != tspos ){
  1307. tspos++;
  1308. continue;
  1309. }
  1310. rSize += obj.getRealColSize(i);
  1311. if( e.col == i ) break;
  1312. }
  1313. if (e.clientX >= (rSize - 25) && e.clientX < rSize ){
  1314. fGridOnButtonClickEvent(e.cell);
  1315. }
  1316. }
  1317. function SMMNP06800_ontimer(obj:Form, e:TimerEventInfo)
  1318. {
  1319. if( e.timerid == 0 ){
  1320. this.killTimer(0);
  1321. fInit();
  1322. }
  1323. }
  1324. function grd_skinsurveylist_onkeydown(obj:Grid, e:KeyEventInfo)
  1325. {
  1326. if(e.keycode == 13){
  1327. if( grd_skinsurveylist.currentcol == 15 ||
  1328. grd_skinsurveylist.currentcol == 16 ||
  1329. grd_skinsurveylist.currentcol == 17){
  1330. obj.showEditor(false)
  1331. }
  1332. }
  1333. }
  1334. function grd_skinsurveylist_oncloseup(obj:Grid, e:GridEditEventInfo)
  1335. {
  1336. var dsGridBind = eval(obj.binddataset);
  1337. var preVal = utlf_transNullToEmpty(dsGridBind.getColumn(e.row, e.col));
  1338. var posVal = utlf_transNullToEmpty(e.value);
  1339. if( bDrop1 == true && (!utlf_isNull(posVal) || preVal != posVal) ){
  1340. obj.showEditor(false);
  1341. }
  1342. bDrop1 = false;
  1343. lastrow1 = e.row;
  1344. lastcol1 = e.col;
  1345. }
  1346. function grd_skinsurveylist_onlbuttonup(obj:Grid, e:GridMouseEventInfo)
  1347. {
  1348. grdf_setSelectedCell(obj, e);
  1349. var dsGridBind = eval(obj.binddataset);
  1350. // Combo DropDown Click 처리
  1351. obj.autoenter = "select";
  1352. if( e.fromreferenceobject.name == "dropbutton" ){
  1353. bDrop1 = true;
  1354. }
  1355. if( e.row > -1 && obj.getCellProperty("body", e.col, "edittype") == "combo" ){
  1356. // Combo 선택시 활성화 및 combodatacol 변경
  1357. if( grdf_getSelectedCols(obj).length == 0 && grdf_getSelectedRows(obj).length == 0 && obj.getEditText() == undefined ){
  1358. obj.showEditor(true);
  1359. }else{
  1360. if(!obj.isDropdownCombo() && (lastrow1 != e.row || lastcol1 != e.col)) {
  1361. obj.setCellPos(e.col);
  1362. dsGridBind.rowposition = e.row;
  1363. obj.showEditor(true);
  1364. if(bDrop1) {
  1365. obj.dropdownCombo();
  1366. }
  1367. }
  1368. }
  1369. }else{
  1370. obj.autoenter = "select";
  1371. }
  1372. }
  1373. ]]></Script>
  1374. </Form>
  1375. </FDL>