SMMNH03400_pop Symptom and sign 사정도구.xrw 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>Symptom and sign 사정도구</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <pcoi>
  11. <pcoilist>
  12. <recitem/>
  13. <recrslt/>
  14. <recdd/>
  15. <pid/>
  16. <cretdd/>
  17. <crettm/>
  18. <recitemcd/>
  19. <refenum/>
  20. </pcoilist>
  21. </pcoi>
  22. <code>
  23. <codelist>
  24. <recitem/>
  25. <chk/>
  26. <cdid/>
  27. <cdnm/>
  28. <recitemcd/>
  29. <refenum/>
  30. <pid/>
  31. <cretdd/>
  32. <crettm/>
  33. </codelist>
  34. </code>
  35. </main>
  36. <send/>
  37. <temp>
  38. <recdt/>
  39. <symptom_popmenu>
  40. <menu>
  41. <name>행추가</name>
  42. <func>symptom_add</func>
  43. </menu>
  44. <menu>
  45. <name>행삭제</name>
  46. <func>symptom_del</func>
  47. </menu>
  48. </symptom_popmenu>
  49. <recdd/>
  50. </temp>
  51. </root>
  52. </instance>
  53. <submission id="TRMNH03401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/pcoi"/>
  54. <submission id="TRMNH03402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/code"/>
  55. <submission id="TXMNH03401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send"/>
  56. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  57. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  58. <script type="javascript" ev:event="xforms-ready">
  59. <![CDATA[
  60. grd_codelist.mergeCol(1) = false;
  61. grd_codelist.mergeCol(2) = false;
  62. grd_codelist.mergeCol(3) = false;
  63. model.removeNodeset("/root/main/pcoi/pcoilist");
  64. model.removeNodeset("/root/main/code/codelist");
  65. model.removenode("/root/send");
  66. model.makeValue("/root/send/pid",pid);
  67. model.makeValue("/root/send/cretdd",cretdd);
  68. model.makeValue("/root/send/crettm",crettm);
  69. model.makeValue("/root/send/recdd",recdd);
  70. submit("TRMNH03401");
  71. submit("TRMNH03402");
  72. for(var i=1 ; i< grd_codelist.rows ; i++) {
  73. if( (grd_codelist.valueMatrix(i,0)=="가래(sputum)") ||
  74. (grd_codelist.valueMatrix(i,0)=="가려움(itching)") ||
  75. (grd_codelist.valueMatrix(i,0)=="구강건조(dry mouth)") ||
  76. (grd_codelist.valueMatrix(i,0)=="구내염(stomatitis)") ||
  77. (grd_codelist.valueMatrix(i,0)=="구토(vomiting)") ||
  78. (grd_codelist.valueMatrix(i,0)=="기면(drowsyness)") ||
  79. (grd_codelist.valueMatrix(i,0)=="기침(cough)") ||
  80. (grd_codelist.valueMatrix(i,0)=="딸꾹질(hiccup)") ||
  81. (grd_codelist.valueMatrix(i,0)=="발작(seizure)") ||
  82. (grd_codelist.valueMatrix(i,0)=="배뇨곤란(dysuria)") ||
  83. (grd_codelist.valueMatrix(i,0)=="변비(constipation)") ||
  84. (grd_codelist.valueMatrix(i,0)=="복수(ascites)") ||
  85. (grd_codelist.valueMatrix(i,0)=="부종(edema)") ||
  86. (grd_codelist.valueMatrix(i,0)=="상처(wound)") ||
  87. (grd_codelist.valueMatrix(i,0)=="설사(diarrhea)") ||
  88. (grd_codelist.valueMatrix(i,0)=="식욕부진(anorexia)") ||
  89. (grd_codelist.valueMatrix(i,0)=="연하곤란(dysphagia)") ||
  90. (grd_codelist.valueMatrix(i,0)=="오심(nausea)") ||
  91. (grd_codelist.valueMatrix(i,0)=="허약(weakness)") ||
  92. (grd_codelist.valueMatrix(i,0)=="호흡곤란(dyspnea)") ||
  93. (grd_codelist.valueMatrix(i,0)=="수면장애(insomnia)") ||
  94. (grd_codelist.valueMatrix(i,0)=="섬망(delirium)") ||
  95. (grd_codelist.valueMatrix(i,0)=="우울(depression)") ||
  96. (grd_codelist.valueMatrix(i,0)=="불안(anxiety)") ||
  97. (grd_codelist.valueMatrix(i,0)=="두려움(fear)") ||
  98. (grd_codelist.valueMatrix(i,0)=="수치감(shame)") ||
  99. (grd_codelist.valueMatrix(i,0)=="슬픔(sadness)") ||
  100. (grd_codelist.valueMatrix(i,0)=="외로움(loneliness)") ||
  101. (grd_codelist.valueMatrix(i,0)=="양가감정(ambivalence)") ||
  102. (grd_codelist.valueMatrix(i,0)=="죄책감(guilty feeling)")
  103. ) {
  104. grd_codelist.isReadOnly(i, 3) = true;
  105. }
  106. }
  107. for(var i =1 ; i < 31 ; i++){
  108. grd_pcoilist.isReadOnly(i, 1) = true;
  109. }
  110. //기준자료 30개외 추가로 입력하는부분에 대하여 free text 부분
  111. for(var i =31 ; i < grd_pcoilist.rows ; i++){ //30개 항목은 픽스 이므로 30보다 큰거부터 시작
  112. var pcoilist = model.getValue("/root/main/pcoi/pcoilist["+i+"]/recitemcd");
  113. var recrslt = model.getValue("/root/main/pcoi/pcoilist["+i+"]/recrslt");
  114. for(var j =0 ; j < grd_codelist.rows ; j++){ // 기준자료 50개 이상은 항상 유지가 되므로 50부터 시작
  115. var codelist = model.getValue("/root/main/code/codelist["+j+"]/recitemcd");
  116. if( pcoilist == codelist) {
  117. model.setValue("/root/main/code/codelist["+j+"]/cdnm",recrslt);
  118. continue;
  119. }
  120. }
  121. }
  122. for(var i =1 ; i < grd_pcoilist.rows ; i++){
  123. var pcoilist = model.getValue("/root/main/pcoi/pcoilist["+i+"]/recitemcd");
  124. var recrslt = model.getValue("/root/main/pcoi/pcoilist["+i+"]/recrslt");
  125. for(var j =1 ; j < grd_codelist.rows ; j++){
  126. var codelist = model.getValue("/root/main/code/codelist["+j+"]/recitemcd");
  127. var cdid = model.getValue("/root/main/code/codelist["+j+"]/cdid");
  128. if( (pcoilist == codelist) && (recrslt == cdid)){
  129. model.setValue("/root/main/code/codelist["+j+"]/chk","true");
  130. grd_codelist.cellStyle("background-color", j, 3, j,3) = "#FFF0FF";
  131. continue;
  132. }
  133. }
  134. }
  135. ]]>
  136. </script>
  137. </model>
  138. <script type="javascript">
  139. <![CDATA[
  140. var pid = opener.window.javascript.getParameter("pid");
  141. var cretdd = opener.window.javascript.getParameter("cretdd");
  142. var crettm = opener.window.javascript.getParameter("crettm");
  143. var recdd = opener.window.javascript.getParameter("recdd");
  144. model.setValue("/root/temp/recdd",recdd);
  145. ipt_recdd.disabled = true;
  146. function symptom_add() {
  147. grd_pcoilist.addRow();
  148. var row = grd_pcoilist.rows-1;
  149. grd_pcoilist.valueMatrix(row,3) = grd_pcoilist.valueMatrix(row-1,3);
  150. grd_pcoilist.valueMatrix(row,4) = grd_pcoilist.valueMatrix(row-1,4);
  151. grd_pcoilist.valueMatrix(row,5) = grd_pcoilist.valueMatrix(row-1,5);
  152. grd_pcoilist.valueMatrix(row,6) = grd_pcoilist.valueMatrix(row-1,6);
  153. var refenum = String(Number(grd_pcoilist.valueMatrix(row-1,8))+1);
  154. var strnum;
  155. if(refenum.length = 1){
  156. strnum = "000"+refenum;
  157. }else if(refenum.length = 2){
  158. strnum = "00"+refenum;
  159. }else if(refenum.length = 3){
  160. strnum = "0"+refenum;
  161. }
  162. var recitemcd = grd_pcoilist.valueMatrix(row-1,7).substring(0,4) + strnum ;
  163. grd_pcoilist.valueMatrix(row,7) = recitemcd;
  164. grd_pcoilist.valueMatrix(row,8) = refenum;
  165. grd_codelist.addRow();
  166. var rows = grd_codelist.rows-1;
  167. var refenum = String(Number(grd_codelist.valueMatrix(rows-1,5))+1);
  168. var strnum;
  169. if(refenum.length = 1){
  170. strnum = "000"+refenum;
  171. }else if(refenum.length = 2){
  172. strnum = "00"+refenum;
  173. }else if(refenum.length = 3){
  174. strnum = "0"+refenum;
  175. }
  176. var recitemcd = grd_codelist.valueMatrix(rows-1,4).substring(0,4) + strnum ;
  177. grd_codelist.valueMatrix(rows,4) = recitemcd;
  178. grd_codelist.valueMatrix(rows,5) = refenum;
  179. grd_codelist.valueMatrix(rows,6) = grd_codelist.valueMatrix(rows-1,6);
  180. grd_codelist.valueMatrix(rows,7) = grd_codelist.valueMatrix(rows-1,7);
  181. grd_codelist.valueMatrix(rows,8) = grd_codelist.valueMatrix(rows-1,8);
  182. }
  183. function symptom_del() {
  184. if(grd_pcoilist.row<31){
  185. messageBox("Symptom 30개항목은 삭제할수 ","I004");
  186. return;
  187. }
  188. var recitem = grd_pcoilist.valueMatrix(grd_pcoilist.row,1);
  189. for(var i = 0 ; i < grd_codelist.rows ; i++){
  190. if(recitem == grd_codelist.valueMatrix(i,0)){
  191. grd_codelist.deleteRow(i);
  192. }
  193. }
  194. grd_pcoilist.deleteRow(grd_pcoilist.row);
  195. }
  196. ]]>
  197. </script>
  198. </xhtml:head>
  199. <xhtml:body pagewidth="915" pageheight="760" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  200. <group id="grp_biz" scroll="auto" style="left:5px; top:5px; width:880px; height:750px; ">
  201. <caption id="caption1" class="tit_2" style="left:5px; top:10px; width:201px; height:14px; ">Symptom and sign 사정도구</caption>
  202. <line id="line1" class="line_1" style="x1:0px; y1:25px; x2:879px; y2:25px; "/>
  203. <datagrid id="grd_pcoilist" nodeset="/root/main/pcoi/pcoilist" caption="선택결과^^^" colsep="^" colwidth="123, 37, 0, 0, 0, 0, 0,0,0" defaultrows="1" rowheader="seq" rowheight="33" rowsep="|" selectionmode="free" navindex="1" style="left:0px; top:30px; width:200px; height:715px; ">
  204. <col ref="recitem" type="input"/>
  205. <col ref="recrslt"/>
  206. <col ref="recdd"/>
  207. <col ref="pid"/>
  208. <col ref="cretdd"/>
  209. <col ref="crettm"/>
  210. <col ref="recitemcd"/>
  211. <col ref="refenum"/>
  212. <script type="javascript" ev:event="onmousedown">
  213. <![CDATA[
  214. if(event.button == 3){
  215. if(grd_pcoilist.isCell(event.target) && grd_pcoilist.mouseRow >= grd_pcoilist.fixedrows){
  216. window.setPopupMenu(true, "/root/temp/symptom_popmenu/menu", "name", "func", false);
  217. }else{
  218. window.setPopupMenu(false);
  219. }
  220. }
  221. ]]>
  222. </script>
  223. <script type="javascript" ev:event="xforms-value-changed">
  224. <![CDATA[
  225. if(grd_pcoilist.col==1){
  226. recitemcd = model.getValue("/root/main/pcoi/pcoilist["+grd_pcoilist.row+"]/recitemcd");
  227. recitem = model.getValue("/root/main/pcoi/pcoilist["+grd_pcoilist.row+"]/recitem");
  228. var cnt ;
  229. for(var i =0 ; i < grd_codelist.rows ; i++){
  230. if(model.getValue("/root/main/code/codelist["+i+"]/recitemcd")==recitemcd)
  231. cnt = i;
  232. }
  233. for(var i = 1 ; i < grd_pcoilist.rows; i++ ){
  234. if( i == grd_pcoilist.row)
  235. continue;
  236. else{
  237. if(recitem == grd_pcoilist.valueMatrix(i,1)){
  238. messageBox("Symptom 항목이 ","E006");
  239. grd_pcoilist.valueMatrix(grd_pcoilist.row,1) = grd_codelist.valueMatrix(cnt,0);
  240. return;
  241. }
  242. }
  243. }
  244. grd_codelist.valueMatrix(cnt,0) = grd_pcoilist.valueMatrix(grd_pcoilist.row,1);
  245. grd_codelist.rebuild();
  246. }
  247. ]]>
  248. </script>
  249. <script type="javascript" ev:event="DOMFocusOut">
  250. <![CDATA[
  251. window.setPopupMenu(false);
  252. ]]>
  253. </script>
  254. </datagrid>
  255. <datagrid id="grd_codelist" nodeset="/root/main/code/codelist" allowselection="true" caption="대분류^^^내용^^^" colsep="^" colwidth="123, 29, 29, 472, 0, 0, 0,0,0" defaultrows="1" mergecells="bycol" rowheight="33" rowsep="|" selectionmode="free" navindex="2" style="left:205px; top:30px; width:673px; height:715px; ">
  256. <col ref="recitem"/>
  257. <col ref="chk" type="checkbox"/>
  258. <col ref="cdid"/>
  259. <col ref="cdnm" type="input"/>
  260. <col ref="recitemcd"/>
  261. <col ref="refenum"/>
  262. <col ref="pid"/>
  263. <col ref="cretdd"/>
  264. <col ref="crettm"/>
  265. <script type="javascript" ev:event="onclick">
  266. <![CDATA[
  267. if( (grd_codelist.valueMatrix(grd_codelist.row,0)=="가래(sputum)") ||
  268. (grd_codelist.valueMatrix(grd_codelist.row,0)=="가려움(itching)") ||
  269. (grd_codelist.valueMatrix(grd_codelist.row,0)=="구강건조(dry mouth)") ||
  270. (grd_codelist.valueMatrix(grd_codelist.row,0)=="구내염(stomatitis)") ||
  271. (grd_codelist.valueMatrix(grd_codelist.row,0)=="구토(vomiting)") ||
  272. (grd_codelist.valueMatrix(grd_codelist.row,0)=="기면(drowsyness)") ||
  273. (grd_codelist.valueMatrix(grd_codelist.row,0)=="기침(cough)") ||
  274. (grd_codelist.valueMatrix(grd_codelist.row,0)=="딸꾹질(hiccup)") ||
  275. (grd_codelist.valueMatrix(grd_codelist.row,0)=="발작(seizure)") ||
  276. (grd_codelist.valueMatrix(grd_codelist.row,0)=="배뇨곤란(dysuria)") ||
  277. (grd_codelist.valueMatrix(grd_codelist.row,0)=="변비(constipation)") ||
  278. (grd_codelist.valueMatrix(grd_codelist.row,0)=="복수(ascites)") ||
  279. (grd_codelist.valueMatrix(grd_codelist.row,0)=="부종(edema)") ||
  280. (grd_codelist.valueMatrix(grd_codelist.row,0)=="상처(wound)") ||
  281. (grd_codelist.valueMatrix(grd_codelist.row,0)=="설사(diarrhea)") ||
  282. (grd_codelist.valueMatrix(grd_codelist.row,0)=="식욕부진(anorexia)") ||
  283. (grd_codelist.valueMatrix(grd_codelist.row,0)=="연하곤란(dysphagia)") ||
  284. (grd_codelist.valueMatrix(grd_codelist.row,0)=="오심(nausea)") ||
  285. (grd_codelist.valueMatrix(grd_codelist.row,0)=="허약(weakness)") ||
  286. (grd_codelist.valueMatrix(grd_codelist.row,0)=="호흡곤란(dyspnea)") ||
  287. (grd_codelist.valueMatrix(grd_codelist.row,0)=="수면장애(insomnia)") ||
  288. (grd_codelist.valueMatrix(grd_codelist.row,0)=="섬망(delirium)") ||
  289. (grd_codelist.valueMatrix(grd_codelist.row,0)=="우울(depression)") ||
  290. (grd_codelist.valueMatrix(grd_codelist.row,0)=="불안(anxiety)") ||
  291. (grd_codelist.valueMatrix(grd_codelist.row,0)=="두려움(fear)") ||
  292. (grd_codelist.valueMatrix(grd_codelist.row,0)=="수치감(shame)") ||
  293. (grd_codelist.valueMatrix(grd_codelist.row,0)=="슬픔(sadness)") ||
  294. (grd_codelist.valueMatrix(grd_codelist.row,0)=="외로움(loneliness)") ||
  295. (grd_codelist.valueMatrix(grd_codelist.row,0)=="양가감정(ambivalence)") ||
  296. (grd_codelist.valueMatrix(grd_codelist.row,0)=="죄책감(guilty feeling)")
  297. ) {
  298. recitemcd = model.getValue("/root/main/code/codelist["+grd_codelist.row+"]/recitemcd");
  299. cdid = model.getValue("/root/main/code/codelist["+grd_codelist.row+"]/cdid");
  300. for(var i =1 ; i < grd_codelist.rows ; i++){
  301. if(recitemcd == model.getValue("/root/main/code/codelist["+i+"]/recitemcd")){
  302. if(cdid == model.getValue("/root/main/code/codelist["+i+"]/cdid")){
  303. model.setValue("/root/main/code/codelist["+i+"]/chk","true");
  304. grd_codelist.cellStyle("background-color", i, 3, i,3) = "#FFF0FF";
  305. }else{
  306. model.setValue("/root/main/code/codelist["+i+"]/chk","false");
  307. grd_codelist.cellStyle("background-color", i, 3, i,3) = "#FFFFFF";
  308. }
  309. }
  310. }
  311. for(var i =1 ; i < grd_pcoilist.rows ; i++){
  312. if(model.getValue("/root/main/pcoi/pcoilist["+i+"]/recitemcd")==recitemcd)
  313. model.setValue("/root/main/pcoi/pcoilist["+i+"]/recrslt",cdid);
  314. }
  315. grd_pcoilist.rebuild();
  316. }
  317. ]]>
  318. </script>
  319. <script type="javascript" ev:event="xforms-value-changed">
  320. <![CDATA[
  321. if(grd_codelist.col==3){
  322. recitemcd = model.getValue("/root/main/code/codelist["+grd_codelist.row+"]/recitemcd");
  323. cdnm = model.getValue("/root/main/code/codelist["+grd_codelist.row+"]/cdnm");
  324. for(var i =1 ; i < grd_pcoilist.rows ; i++){
  325. if(model.getValue("/root/main/pcoi/pcoilist["+i+"]/recitemcd")==recitemcd)
  326. model.setValue("/root/main/pcoi/pcoilist["+i+"]/recrslt",cdnm);
  327. }
  328. grd_pcoilist.rebuild();
  329. }
  330. ]]>
  331. </script>
  332. </datagrid>
  333. <button id="button3" class="btn5_letter2" navindex="3" style="left:790px; top:4px; width:42px; height:19px; ">
  334. <caption>저장</caption>
  335. <script type="javascript" ev:event="DOMActivate">
  336. <![CDATA[
  337. if(messageBox("","Q002") != 6) return;
  338. var xPaasPath = "/root/main/pcoi/pcoilist";
  339. var sPaasData =
  340. "pid" //01등록번호
  341. + "▦cretdd" //02생성일자
  342. + "▦crettm" //02_1생성시간
  343. + "▦chrtpcl" //03기록구분
  344. + "▦recitemcd" //04기록항목코드
  345. + "▦recdd" //05기록일자
  346. + "▦recrslt" //06값
  347. + "▦insrecdd" //07기록날자
  348. + "▦supitemcd" //08상위임상항목코드
  349. + "▦recitem" //09기록항목명
  350. + "▦supitem" //09_1상위기록항목명
  351. + "▦refenum" //10조회순서
  352. + "▦suprefenum" //11상위조회순서
  353. + "▩" ;
  354. for (i=1;i < grd_pcoilist.rows ; i++ ) {
  355. if(i < 31){
  356. if((model.getValue(xPaasPath + "["+ i + "]/recrslt" )=="")||(model.getValue(xPaasPath + "["+ i + "]/recrslt" )==null)){
  357. messageBox("Symptom 30개항목은 ","I003");
  358. return;
  359. }
  360. }
  361. sPaasData +=
  362. model.getValue(xPaasPath + "["+ i + "]/pid" ) //01등록번호
  363. + "▦" + model.getValue(xPaasPath + "["+ i + "]/cretdd" ) //02생성일자
  364. + "▦" + model.getValue(xPaasPath + "["+ i + "]/crettm" ) //02_1생성시간
  365. + "▦" + '2' //03기록구분
  366. + "▦" + model.getValue(xPaasPath + "["+ i + "]/recitemcd" ) //04기록항목코드
  367. + "▦" + model.getValue(xPaasPath + "["+ i + "]/recdd" ) //05기록일자
  368. + "▦" + model.getValue(xPaasPath + "["+ i + "]/recrslt" ) //06값
  369. + "▦" + recdd //07기록날자
  370. + "▦" + 'SYPM0001' //08상위임상항목코드
  371. + "▦" + model.getValue(xPaasPath + "["+ i + "]/recitem" ) //09기록항목명
  372. + "▦" + 'Symptom' //09_1상위기록항목명
  373. + "▦" + model.getValue(xPaasPath + "["+ i + "]/refenum" ) //10조회순서
  374. + "▦" + "1" //11상위조회순서
  375. + "▩" ;
  376. }
  377. model.removenode("/root/send");
  378. model.makeNode("/root/send");
  379. model.makeValue("/root/send/sPaasData" ,sPaasData );
  380. submit("TXMNH03401");
  381. window.close();
  382. ]]>
  383. </script>
  384. </button>
  385. <button id="button4" class="btn2_letter2" navindex="4" style="left:834px; top:4px; width:42px; height:19px; ">
  386. <caption>닫기</caption>
  387. <script type="javascript" ev:event="DOMActivate">
  388. <![CDATA[
  389. window.close();
  390. ]]>
  391. </script>
  392. </button>
  393. <input id="ipt_recdd" ref="/root/temp/recdd" class="input_default" navindex="5" inputtype="date" maxlength="10" format="yyyy-mm-dd" style="left:686px; top:4px; width:100px; height:19px; "/>
  394. <caption id="caption29" class="cell_1" style="left:620px; top:3px; width:64px; height:21px; text-align:center; vertical-align:middle; ">적용일자</caption>
  395. </group>
  396. </xhtml:body>
  397. </xhtml:html>