SearchPatientCommand.as 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.imt.intimamedia.commands.patient
  2. {
  3. import com.adobe.cairngorm.control.CairngormEvent;
  4. import com.imt.flex.cairngormExtended.command.SuperCommand;
  5. import com.imt.intimamedia.business.PatientDelegate;
  6. import com.imt.intimamedia.events.patient.SearchPatientEvent;
  7. import com.imt.intimamedia.model.ApplicationModelLocator;
  8. import com.imt.intimamedia.views.common.ImtToaster;
  9. import com.imt.intimamedia.vo.PatientVo;
  10. import com.imt.intimamedia.vo.ReturnObjectVo;
  11. import com.imt.intimamedia.helpers.AES;
  12. import mx.controls.Alert;
  13. import mx.resources.ResourceManager;
  14. import mx.rpc.events.FaultEvent;
  15. import mx.rpc.events.ResultEvent;
  16. /**
  17. * Commande de recherche d'un patient
  18. */
  19. public class SearchPatientCommand extends SuperCommand
  20. {
  21. /**
  22. * Excecution de la commande
  23. *
  24. * @param event Evénement de type CairngormEvent
  25. * @return void
  26. */
  27. override public function execute( event : CairngormEvent ) : void
  28. {
  29. super.execute( event );
  30. var delegate : PatientDelegate = new PatientDelegate( this );
  31. var searchPatientEvent : SearchPatientEvent = SearchPatientEvent( event );
  32. delegate.searchPatient( searchPatientEvent.criteria, ApplicationModelLocator.getInstance().connectedUser.person.organization, ApplicationModelLocator.getInstance().token );
  33. }
  34. /**
  35. * Résultat de la commande
  36. *
  37. * @param result Un objet
  38. * @return void
  39. */
  40. override public function result( result : Object ) : void
  41. {
  42. var resultEvent : ResultEvent = ResultEvent( result );
  43. var dispatcher : * = this.getDispatcher(this);
  44. var returnObjectVo : ReturnObjectVo = resultEvent.result as ReturnObjectVo;
  45. ApplicationModelLocator.getInstance().token = returnObjectVo.token;
  46. ApplicationModelLocator.getInstance().listOfPatients.source = returnObjectVo.value as Array;
  47. ApplicationModelLocator.getInstance().listOfDisplayedPatients.addAll(ApplicationModelLocator.getInstance().listOfPatients);
  48. for each (var patient : PatientVo in ApplicationModelLocator.getInstance().listOfPatients)
  49. {
  50. patient.firstName = AES.decrypt(patient.firstName, ApplicationModelLocator.getInstance().aesKey, AES.BIT_KEY_256);
  51. patient.lastName = AES.decrypt(patient.lastName, ApplicationModelLocator.getInstance().aesKey, AES.BIT_KEY_256);
  52. }
  53. ApplicationModelLocator.getInstance().listOfDisplayedPatients.removeAll();
  54. ApplicationModelLocator.getInstance().listOfDisplayedPatients.addAll(ApplicationModelLocator.getInstance().listOfPatients);
  55. if (dispatcher)
  56. dispatcher.setSearchPatientText();
  57. super.result( result );
  58. }
  59. /**
  60. * Résultat de la commande
  61. *
  62. * @param result Un objet
  63. * @return void
  64. */
  65. override public function fault( fault : Object ) : void
  66. {
  67. super.fault( fault );
  68. if (( fault as FaultEvent ).fault.faultString == ApplicationModelLocator.getInstance().ERROR_SESSION )
  69. {
  70. ApplicationModelLocator.displaySessionExpired( fault as FaultEvent );
  71. }
  72. else
  73. {
  74. var toastMessage : ImtToaster = new ImtToaster();
  75. toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'error.title');
  76. toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.searchPatient') + " (" + ResourceManager.getInstance().getString('errors', ( fault as FaultEvent ).fault.faultString) +")";
  77. toastMessage.level = ImtToaster.ERROR;
  78. ApplicationModelLocator.getInstance().toaster.toast( toastMessage );
  79. }
  80. }
  81. }
  82. }