treatments.as 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. import com.imt.intimamedia.events.patient.AddTreatmentEvent;
  2. import com.imt.intimamedia.helpers.HelpUtils;
  3. import com.imt.intimamedia.model.ApplicationModelLocator;
  4. import com.imt.intimamedia.views.common.ImtToaster;
  5. import com.imt.intimamedia.views.physician.patient.PatientView;
  6. import com.imt.intimamedia.vo.TreatmentVo;
  7. import flash.events.KeyboardEvent;
  8. import mx.collections.ArrayCollection;
  9. import mx.controls.Alert;
  10. import mx.controls.Image;
  11. import mx.controls.dataGridClasses.DataGridColumn;
  12. import mx.events.ValidationResultEvent;
  13. import mx.formatters.DateFormatter;
  14. import mx.resources.ResourceManager;
  15. import mx.validators.Validator;
  16. [Bindable]
  17. private var _minYearOfBirth : int = new Date().fullYear - 110;
  18. [Bindable]
  19. private var _maxYearOfBirth : int = new Date().fullYear;
  20. [Bindable]
  21. private var _disabledRangesDate : Array = [ {rangeStart: new Date(new Date().fullYear, new Date().getMonth(), new Date().getDate()+1)} ];
  22. [Bindable]
  23. private var _model : ApplicationModelLocator = ApplicationModelLocator.getInstance();
  24. [Bindable]
  25. public var listTreatments : ArrayCollection = new ArrayCollection();
  26. private function creationCompleteHandler() : void
  27. {
  28. patientDataHelp.source = 'images/help/' + ResourceManager.getInstance().getString('labels', 'lang') + '/patientData.png';
  29. initListeners();
  30. }
  31. public function showHelp(image : Image) : void
  32. {
  33. HelpUtils.showHelp(this, image, zoomHelpAdd, zoomHelpRemove);
  34. }
  35. private function navigationPrev() : void
  36. {
  37. var parent : PatientView = this.parentDocument as PatientView;
  38. parent.selectView(parent.cardioStart, parent.cardioEnd, parent.cardioBox, parent.cardioLinkButton, 4)
  39. }
  40. private function navigationNext() : void
  41. {
  42. _model.application.menuPhysician.selectedIndex = 1;
  43. //toaster to do ?
  44. }
  45. private function loadKeyboardListeners() : void
  46. {
  47. treatmentNameTextInput.addEventListener(KeyboardEvent.KEY_UP, translateFirstCharToUpperCase);
  48. }
  49. private function translateFirstCharToUpperCase( e : KeyboardEvent ) : void
  50. {
  51. if (treatmentNameTextInput.text.length == 1)
  52. {
  53. if (e.keyCode > 64 && e.keyCode < 91)
  54. {
  55. var b:String = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  56. treatmentNameTextInput.text = b.charAt(e.keyCode - 65);
  57. }
  58. }
  59. else
  60. {
  61. var firstCharFirstName : String = treatmentNameTextInput.text.substr(0, 1);
  62. var firstNameLessFirstChar : String = treatmentNameTextInput.text.substr(1, treatmentNameTextInput.text.length);
  63. treatmentNameTextInput.text = firstCharFirstName.toUpperCase() + firstNameLessFirstChar;
  64. }
  65. }
  66. public function loadAppointmentData(treatments : ArrayCollection) : void
  67. {
  68. listTreatments.removeAll();
  69. if (treatments && treatments.length > 0)
  70. {
  71. for each (var currentTreatment : TreatmentVo in treatments)
  72. {
  73. var treatmentVo : TreatmentVo = new TreatmentVo();
  74. treatmentVo.type = currentTreatment.type;
  75. treatmentVo.name = currentTreatment.name;
  76. treatmentVo.posology = currentTreatment.posology;
  77. treatmentVo.startDate = currentTreatment.startDate;
  78. listTreatments.addItem(treatmentVo);
  79. }
  80. _model.appointmentSelected.treatments = listTreatments.source;
  81. }
  82. }
  83. private function addTreatment() : void
  84. {
  85. var toastMessage : ImtToaster = new ImtToaster();
  86. var validators : Array = [ typeValidator, nameValidator, posologyValidator, startDateValidator ];
  87. var validatorsError : Array = Validator.validateAll( validators );
  88. if( validatorsError.length != 0 )
  89. {
  90. toastMessage = new ImtToaster();
  91. toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'error.allFieldsTitle');
  92. toastMessage.timeToLive = 7;
  93. toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.allFieldsAddTreatment');
  94. toastMessage.level = ImtToaster.WARNING;
  95. _model.toaster.toast( toastMessage );
  96. }
  97. else
  98. {
  99. for each (var t : TreatmentVo in listTreatments)
  100. {
  101. if (treatmentNameTextInput.text == t.name)
  102. {
  103. toastMessage = new ImtToaster();
  104. toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'warning.use');
  105. toastMessage.timeToLive = 7;
  106. toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.treatmentAlreadyExists');
  107. toastMessage.level = ImtToaster.WARNING;
  108. _model.toaster.toast( toastMessage );
  109. return;
  110. }
  111. }
  112. var treatmentVo : TreatmentVo = new TreatmentVo();
  113. treatmentVo.type = typeOfTreatmentButtonGroup.selectedValue as String;
  114. treatmentVo.name = treatmentNameTextInput.text;
  115. treatmentVo.posology = treatmentPosologyTextInput.text;
  116. treatmentVo.startDate = treatmentStartDateTextInput.text;
  117. listTreatments.addItem( treatmentVo );
  118. _model.appointmentSelected.treatmentCollection.addItem(treatmentVo);
  119. _model.appointmentSelected.treatments = listTreatments.source;
  120. typeOfTreatmentButtonGroup.selection = null;
  121. treatmentNameTextInput.text = "";
  122. treatmentPosologyTextInput.text = "";
  123. treatmentStartDateTextInput.text = "";
  124. }
  125. }
  126. private function update() : void
  127. {
  128. if (_model.appointmentSelected.treatments.length > 0)
  129. new AddTreatmentEvent( _model.appointmentSelected.treatments, _model.appointmentSelected.id ).dispatch();
  130. }
  131. public function reset() : void
  132. {
  133. listTreatments = new ArrayCollection();
  134. treatmentStartDateTextInput.text = "";
  135. typeOfTreatmentButtonGroup.selection = null;
  136. treatmentNameTextInput.text = "";
  137. treatmentPosologyTextInput.text = "";
  138. }
  139. private function initListeners() : void
  140. {
  141. nameValidator.requiredFieldError = ResourceManager.getInstance().getString('labels', 'required');
  142. nameValidator.addEventListener(ValidationResultEvent.VALID, stringValidatorHandler);
  143. posologyValidator.requiredFieldError = ResourceManager.getInstance().getString('labels', 'required');
  144. posologyValidator.addEventListener(ValidationResultEvent.VALID, stringValidatorHandler);
  145. startDateValidator.requiredFieldError = ResourceManager.getInstance().getString('labels', 'required');
  146. startDateValidator.addEventListener(ValidationResultEvent.VALID, stringValidatorHandler);
  147. }
  148. public function updateErrorStrings() : void
  149. {
  150. if (treatmentNameTextInput.errorString)
  151. treatmentNameTextInput.errorString = ResourceManager.getInstance().getString('labels', 'errorField');
  152. if (treatmentPosologyTextInput.errorString)
  153. treatmentPosologyTextInput.errorString = ResourceManager.getInstance().getString('labels', 'errorField');
  154. if (treatmentStartDateTextInput.errorString)
  155. treatmentStartDateTextInput.errorString = ResourceManager.getInstance().getString('labels', 'errorField');
  156. }
  157. private function stringValidatorHandler(event : ValidationResultEvent) : void
  158. {
  159. if (event.target.errorString)
  160. event.target.errorString = null;
  161. }
  162. private function formatType( item : Object, column : DataGridColumn ) : String
  163. {
  164. return ResourceManager.getInstance().getString( 'treatments', item.type );
  165. }