PatientFile.mxml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
  3. xmlns:helpers="com.imt.intimamedia.helpers.*"
  4. xmlns:local="*"
  5. width="100%" height="100%"
  6. styleName="containerZoneWithTitleAndBackground"
  7. horizontalScrollPolicy="off" verticalScrollPolicy="off"
  8. show="loadKeyboardListeners()"
  9. creationComplete="creationCompleteHandler()"
  10. showEffect="showBox" hideEffect="hideBox">
  11. <mx:Script source="../../../scripts/physician/patient/patientFile.as" />
  12. <mx:Image id="searchPatientHelp" visible="false" includeInLayout="false" />
  13. <mx:Image id="createPatientHelp" visible="false" includeInLayout="false" />
  14. <mx:Image id="patientTabHelp" visible="false" includeInLayout="false" />
  15. <mx:StringValidator id="firstNameValidator" source="{firstNameTextInput}" property="text" trigger="{firstNameTextInput}" triggerEvent="focusOut" requiredFieldError="{resourceManager.getString('labels', 'required')}" />
  16. <mx:StringValidator id="lastNameValidator" source="{lastNameTextInput}" property="text" trigger="{lastNameTextInput}" triggerEvent="focusOut" requiredFieldError="{resourceManager.getString('labels', 'required')}" />
  17. <mx:StringValidator id="sexValidator" source="{sexRadioButtonGroup}" property="selectedValue" required="true" requiredFieldError="{resourceManager.getString('labels', 'required')}" />
  18. <mx:DateValidator id="dateOfBirthValidator" source="{dateOfBirthDateField}" property="text" required="true" inputFormat="{resourceManager.getString( 'labels', 'date' )}" requiredFieldError="{resourceManager.getString('labels', 'required')}" />
  19. <mx:DateFormatter id="dateFormatter" formatString="{resourceManager.getString( 'labels', 'date' )}" />
  20. <mx:Zoom id="zoomHelpAdd" startDelay="50"/>
  21. <mx:Parallel id="zoomHelpRemove">
  22. <mx:Zoom />
  23. <mx:Fade />
  24. </mx:Parallel>
  25. <mx:Canvas>
  26. <mx:Image source="@Embed('images/general/leftTitle.png')" />
  27. <mx:Label text="{resourceManager.getString( 'labels', 'title.patientFile' )}" styleName="titlePanel" />
  28. </mx:Canvas>
  29. <mx:HBox width="100%" height="100%" paddingBottom="5" paddingLeft="10" paddingRight="10">
  30. <mx:Canvas width="100%" height="100%" horizontalScrollPolicy="off">
  31. <mx:VBox width="100%" height="90%" verticalAlign="top" horizontalAlign="center">
  32. <mx:HBox paddingBottom="15">
  33. <mx:Image source="@Embed('images/general/question_mark.png')" click="HelpUtils.loadPatientHelp(searchPatientHelp)" buttonMode="true" useHandCursor="true" />
  34. <mx:Label text="{resourceManager.getString( 'labels', 'label.search' )}" fontSize="18" styleName="redText" />
  35. </mx:HBox>
  36. <mx:FormItem label="{resourceManager.getString( 'labels', 'search.patient' )}" width="100%">
  37. <mx:HBox width="100%">
  38. <mx:TextInput id="criteria" paddingLeft="5" width="100%" text="{resourceManager.getString( 'labels', 'search.patient.info')}" toolTip="{resourceManager.getString( 'labels', 'search.patient.info')}" enter="searchPatient()" click="removeSearchPatientText()" />
  39. <mx:Button id="searchButton" label="{resourceManager.getString( 'labels', 'button.search' )}" click="searchPatient()" />
  40. </mx:HBox>
  41. </mx:FormItem>
  42. <mx:Spacer height="10" />
  43. <mx:DataGrid id="dg" width="100%" height="85%"
  44. dataProvider="{ApplicationModelLocator.getInstance().listOfDisplayedPatients}"
  45. verticalScrollPolicy="on"
  46. editable="false"
  47. doubleClickEnabled="false"
  48. itemClick="selectPatient(event)"
  49. tabEnabled="false"
  50. draggableColumns="false">
  51. <mx:columns>
  52. <mx:DataGridColumn headerText="{resourceManager.getString( 'labels', 'datagrid.lastName' )}" dataField="lastName" />
  53. <mx:DataGridColumn headerText="{resourceManager.getString( 'labels', 'datagrid.firstName' )}" dataField="firstName"/>
  54. <mx:DataGridColumn headerText="{resourceManager.getString( 'labels', 'datagrid.sex' )}" width="80" dataField="sex" itemRenderer="com.imt.intimamedia.views.physician.patient.SexRenderer" />
  55. <mx:DataGridColumn headerText="{resourceManager.getString( 'labels', 'datagrid.birthDate' )}" dataField="birthDate" labelFunction="formatBirthDate" />
  56. <mx:DataGridColumn headerText="{resourceManager.getString( 'labels', 'datagrid.lastVisit' )}" dataField="lastVisit" labelFunction="formatLastVisit" />
  57. </mx:columns>
  58. </mx:DataGrid>
  59. <mx:HBox id="actionOnSearch" visible="false" includeInLayout="true" width="100%" hideEffect="Fade" showEffect="Fade">
  60. <mx:HBox left="5" width="50%">
  61. <mx:Button label="{resourceManager.getString( 'labels', 'title.patientCreate' )}" click="resetCreatePatientForm()" includeInLayout="{(_model.patientActive &amp;&amp; !_model.viewPatient) || _model.viewPatient}" visible="{(_model.patientActive &amp;&amp; !_model.viewPatient) || _model.viewPatient}" hideEffect="Fade" showEffect="Fade" />
  62. </mx:HBox>
  63. <mx:HBox right="5" width="50%">
  64. <mx:Button label="{resourceManager.getString( 'labels', 'button.createAppointment' )}" click="prepareCreateAppointment(event)" />
  65. <mx:Spacer />
  66. <mx:ComboBox
  67. id="comboBoxAppointmentSelected"
  68. prompt="{resourceManager.getString( 'labels', 'button.chooseAppointment' )}"
  69. dataProvider="{_model.listOfAppointments}"
  70. labelFunction="formatAppointment"
  71. selectedIndex="0"
  72. change="selectAppointment(event)"/>
  73. </mx:HBox>
  74. </mx:HBox>
  75. </mx:VBox>
  76. </mx:Canvas>
  77. <mx:VRule left="15" height="100%" />
  78. <mx:Canvas width="100%" height="100%" horizontalScrollPolicy="off">
  79. <mx:VBox width="100%" height="100%" verticalAlign="top" horizontalAlign="center" horizontalScrollPolicy="off">
  80. <mx:HBox paddingBottom="15">
  81. <mx:Image source="@Embed('images/general/question_mark.png')" click="HelpUtils.loadPatientHelp(createPatientHelp)" buttonMode="true" useHandCursor="true" />
  82. <mx:Label text="{resourceManager.getString( 'labels', 'title.patientCreate' )}" styleName="redText" hideEffect="Fade" fontSize="18" showEffect="Fade" includeInLayout="{!_model.patientActive}" visible="{!_model.patientActive}" />
  83. <mx:Label text="{resourceManager.getString( 'labels', 'title.patientView' )}" styleName="redText" hideEffect="Fade" fontSize="18" showEffect="Fade" includeInLayout="{_model.viewPatient &amp;&amp; !_model.updatePatient}" visible="{_model.viewPatient &amp;&amp; !_model.updatePatient}" />
  84. <mx:Label text="{resourceManager.getString( 'labels', 'title.selectedPatient' )}" styleName="redText" hideEffect="Fade" fontSize="18" showEffect="Fade" includeInLayout="{_model.patientActive &amp;&amp; !_model.viewPatient &amp;&amp; !_model.updatePatient}" visible="{_model.patientActive &amp;&amp; !_model.viewPatient &amp;&amp; !_model.updatePatient}" />
  85. <mx:Label text="{resourceManager.getString( 'labels', 'title.selectedPatient' )}" styleName="redText" hideEffect="Fade" fontSize="18" showEffect="Fade" includeInLayout="{_model.patientActive &amp;&amp; _model.updatePatient}" visible="{_model.patientActive &amp;&amp; _model.updatePatient}" />
  86. </mx:HBox>
  87. <mx:VBox paddingTop="20" horizontalAlign="left">
  88. <mx:VBox visible="{!_model.patientActive || _model.updatePatient}" includeInLayout="{!_model.patientActive || _model.updatePatient}" hideEffect="Fade" showEffect="Fade">
  89. <mx:FormItem id="lastNameLabel" label="{resourceManager.getString( 'labels', 'label.lastName' )}" required="true" labelWidth="150">
  90. <helpers:TextInputWithSkin id="lastNameTextInput" maxChars="49" styleName="textInput"/>
  91. </mx:FormItem>
  92. <mx:FormItem id="firstNameLabel" label="{resourceManager.getString( 'labels', 'label.firstName' )}" required="true" labelWidth="150">
  93. <helpers:TextInputWithSkin id="firstNameTextInput" maxChars="49" styleName="textInput" />
  94. </mx:FormItem>
  95. </mx:VBox>
  96. <mx:VBox visible="{_model.patientActive &amp;&amp; !_model.updatePatient}" includeInLayout="{_model.patientActive &amp;&amp; !_model.updatePatient}" hideEffect="Fade" showEffect="Fade">
  97. <mx:FormItem label="{resourceManager.getString( 'labels', 'label.lastName' )}" labelWidth="150">
  98. <mx:Label text="{_model.patientSelected.lastName}" styleName="fontBold" />
  99. </mx:FormItem>
  100. <mx:FormItem label="{resourceManager.getString( 'labels', 'label.firstName' )}" labelWidth="150">
  101. <mx:Label text="{_model.patientSelected.firstName}" styleName="fontBold" />
  102. </mx:FormItem>
  103. </mx:VBox>
  104. <mx:VBox visible="{!_model.patientActive || _model.updatePatient}" includeInLayout="{!_model.patientActive || _model.updatePatient}" hideEffect="Fade" showEffect="Fade">
  105. <mx:FormItem id="sexLabel" label="{resourceManager.getString( 'labels', 'label.sex' )}" required="true" labelWidth="150" >
  106. <mx:RadioButtonGroup id="sexRadioButtonGroup" />
  107. <mx:HBox paddingLeft="10">
  108. <mx:RadioButton label="{resourceManager.getString( 'labels', 'label.man' )}" group="{sexRadioButtonGroup}" value="M" />
  109. <mx:RadioButton label="{resourceManager.getString( 'labels', 'label.woman' )}" group="{sexRadioButtonGroup}" value="F" />
  110. </mx:HBox>
  111. </mx:FormItem>
  112. </mx:VBox>
  113. <mx:VBox visible="{_model.patientActive &amp;&amp; !_model.updatePatient}" includeInLayout="{_model.patientActive &amp;&amp; !_model.updatePatient}" hideEffect="Fade" showEffect="Fade">
  114. <mx:FormItem label="{resourceManager.getString( 'labels', 'label.sex' )}" labelWidth="150">
  115. <mx:Label text="{resourceManager.getString( 'labels', _model.patientSelected.sex )}" styleName="fontBold" />
  116. </mx:FormItem>
  117. </mx:VBox>
  118. <mx:VBox visible="{(!_model.patientActive || _model.updatePatient) &amp;&amp; _model.connectedUser.hospital.country != 'FR'}" includeInLayout="{(!_model.patientActive || _model.updatePatient) &amp;&amp; _model.connectedUser.hospital.country != 'FR'}" hideEffect="Fade" showEffect="Fade">
  119. <mx:FormItem label="{resourceManager.getString( 'labels', 'label.ethnicGroup' )}" labelWidth="150">
  120. <mx:ComboBox id="ethnicGroupComboBox" prompt="{resourceManager.getString('labels', 'choose.ethnic.group')}" selectedIndex="-1" dataProvider="{_model.ethnic}" width="100%" />
  121. </mx:FormItem>
  122. </mx:VBox>
  123. <mx:VBox visible="{(_model.patientActive &amp;&amp; !_model.updatePatient) &amp;&amp; _model.connectedUser.hospital.country != 'FR'}" includeInLayout="{(_model.patientActive &amp;&amp; !_model.updatePatient) &amp;&amp; _model.connectedUser.hospital.country != 'FR'}" hideEffect="Fade" showEffect="Fade">
  124. <mx:FormItem label="{resourceManager.getString( 'labels', 'label.ethnicGroup' )}" labelWidth="150">
  125. <mx:Label text="{resourceManager.getString( 'ethnic', _model.patientSelected.ethnicGroup )}" styleName="fontBold" />
  126. </mx:FormItem>
  127. </mx:VBox>
  128. <mx:VBox visible="{!_model.patientActive || _model.updatePatient}" includeInLayout="{!_model.patientActive || _model.updatePatient}" hideEffect="Fade" showEffect="Fade">
  129. <mx:FormItem id="dateOfBirthDateText" label="{resourceManager.getString( 'labels', 'label.birthDate' )}" required="true" labelWidth="150">
  130. <mx:HBox>
  131. <mx:DateField id="dateOfBirthDateField"
  132. yearNavigationEnabled="true"
  133. editable="true"
  134. firstDayOfWeek="{resourceManager.getInt( 'labels', 'firstDay' )}"
  135. monthNames="{resourceManager.getStringArray( 'labels', 'monthNames' )}"
  136. dayNames="{resourceManager.getStringArray( 'labels', 'dayNames' )}"
  137. formatString="{resourceManager.getString( 'labels', 'date' )}"
  138. displayedYear="1960"
  139. disabledRanges="{_disabledRangesDateOfBirth}"
  140. minYear="{_minYearOfBirth}"
  141. maxYear="{_maxYearOfBirth}" />
  142. <mx:Label text="{resourceManager.getString( 'labels', 'formatDate' )}" />
  143. </mx:HBox>
  144. </mx:FormItem>
  145. </mx:VBox>
  146. <mx:VBox visible="{_model.patientActive &amp;&amp; !_model.updatePatient}" includeInLayout="{_model.patientActive &amp;&amp; !_model.updatePatient}" hideEffect="Fade" showEffect="Fade">
  147. <mx:FormItem label="{resourceManager.getString( 'labels', 'label.birthDate' )}" labelWidth="150">
  148. <mx:Label text="{dateFormatter.format( _model.patientSelected.birthDate )}" styleName="fontBold" />
  149. </mx:FormItem>
  150. </mx:VBox>
  151. <mx:VBox paddingTop="10" visible="{!_model.updatePatient}" includeInLayout="{!_model.updatePatient}" hideEffect="Fade" showEffect="Fade">
  152. <mx:FormItem label="{resourceManager.getString( 'labels', 'label.appointment.number' )}" labelWidth="150">
  153. <mx:Label id="visitNumberLabel" text="{_currentPatientVisit}" styleName="fontBold" />
  154. </mx:FormItem>
  155. </mx:VBox>
  156. <mx:VBox visible="{!_model.patientActive}" includeInLayout="{!_model.patientActive}" paddingBottom="15" hideEffect="Fade" showEffect="Fade">
  157. <mx:FormItem label="{resourceManager.getString( 'labels', 'label.visitDate' )}" labelWidth="150">
  158. <mx:DateField id="visitDateField"
  159. yearNavigationEnabled="false"
  160. editable="false"
  161. minYear="{_currentYear}"
  162. firstDayOfWeek="{resourceManager.getInt( 'labels', 'firstDay' )}"
  163. monthNames="{resourceManager.getStringArray( 'labels', 'monthNames' )}"
  164. dayNames="{resourceManager.getStringArray( 'labels', 'dayNames' )}"
  165. formatString="{resourceManager.getString( 'labels', 'date' )}"
  166. selectedDate="{new Date()}"
  167. disabledRanges="{_disabledRangesVisitDate}" />
  168. </mx:FormItem>
  169. </mx:VBox>
  170. <mx:VBox visible="{_model.patientActive &amp;&amp; !_model.updatePatient}" includeInLayout="{_model.patientActive &amp;&amp; !_model.updatePatient}" paddingBottom="15" hideEffect="Fade" showEffect="Fade">
  171. <mx:FormItem label="{resourceManager.getString( 'labels', 'label.visitDate' )}" labelWidth="150">
  172. <mx:Label id="dateAppointment" text="{dateFormatter.format( _model.appointmentSelected.date )}" styleName="fontBold" />
  173. </mx:FormItem>
  174. </mx:VBox>
  175. <mx:VBox visible="{!_model.patientActive &amp;&amp; !_model.updatePatient}" includeInLayout="{!_model.patientActive &amp;&amp; !_model.updatePatient}" hideEffect="Fade" showEffect="Fade">
  176. <mx:FormItem label="{resourceManager.getString( 'labels', 'label.ID' )}" labelWidth="150">
  177. <mx:Label id="uidPatientLabel" text="{FormatString.generateRandomUID()}" />
  178. </mx:FormItem>
  179. </mx:VBox>
  180. <mx:Spacer height="60" />
  181. <mx:Box horizontalAlign="center" paddingTop="50" width="100%">
  182. <mx:Button label="{resourceManager.getString( 'labels', 'button.createPatient' )}" keyDown="createPatient()" click="createPatient()" includeInLayout="{!_model.patientActive}" visible="{!_model.patientActive}" hideEffect="Fade" showEffect="Fade" />
  183. <mx:Button label="{resourceManager.getString( 'labels', 'modify' )}" click="modifyPatient()" includeInLayout="{_model.patientActive &amp;&amp; !_model.updatePatient}" visible="{_model.patientActive &amp;&amp; !_model.updatePatient}" hideEffect="Fade" showEffect="Fade" />
  184. <mx:Button label="{resourceManager.getString( 'labels', 'update' )}" click="updatePatient()" includeInLayout="{_model.patientActive &amp;&amp; _model.updatePatient}" visible="{_model.patientActive &amp;&amp; _model.updatePatient}" hideEffect="Fade" showEffect="Fade" />
  185. </mx:Box>
  186. </mx:VBox>
  187. </mx:VBox>
  188. </mx:Canvas>
  189. <!-- navigation link Vbox -->
  190. <mx:VBox height="100%" paddingRight="10" verticalAlign="middle">
  191. <mx:HBox click="navigationNext()" horizontalGap="0">
  192. <mx:HBox height="43" styleName="backgroundGreyTimeLine" verticalAlign="middle">
  193. <mx:LinkButton styleName="linkButtonGreyTimeLine" label="{resourceManager.getString( 'labels', 'timeline.ats' )}" />
  194. </mx:HBox>
  195. <mx:Image source="@Embed('images/patient/endArrowGreyTimeLine.png')" horizontalCenter="0" />
  196. </mx:HBox>
  197. </mx:VBox>
  198. </mx:HBox>
  199. </mx:VBox>