CreatePatientCommand.as 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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.CreatePatientEvent;
  7. import com.imt.intimamedia.model.ApplicationModelLocator;
  8. import com.imt.intimamedia.views.common.ImtToaster;
  9. import com.imt.intimamedia.views.physician.patient.PatientFile;
  10. import com.imt.intimamedia.vo.AppointmentVo;
  11. import com.imt.intimamedia.vo.ReturnObjectVo;
  12. import mx.resources.ResourceManager;
  13. import mx.rpc.events.FaultEvent;
  14. import mx.rpc.events.ResultEvent;
  15. import com.imt.intimamedia.helpers.AES;
  16. /**
  17. * Commande de création d'un patient
  18. */
  19. public class CreatePatientCommand 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 createPatientEvent : CreatePatientEvent = CreatePatientEvent( event );
  32. ApplicationModelLocator.getInstance().patientSelected = createPatientEvent.patient;
  33. ApplicationModelLocator.getInstance().appointmentSelected = createPatientEvent.appointment;
  34. createPatientEvent.patient.firstName = AES.encrypt(createPatientEvent.patient.firstName, ApplicationModelLocator.getInstance().aesKey, AES.BIT_KEY_256);
  35. createPatientEvent.patient.lastName = AES.encrypt(createPatientEvent.patient.lastName, ApplicationModelLocator.getInstance().aesKey, AES.BIT_KEY_256);
  36. delegate.createPatient( createPatientEvent.patient, createPatientEvent.appointment, createPatientEvent.person, ApplicationModelLocator.getInstance().token );
  37. createPatientEvent.patient.firstName = AES.decrypt(createPatientEvent.patient.firstName, ApplicationModelLocator.getInstance().aesKey, AES.BIT_KEY_256);
  38. createPatientEvent.patient.lastName = AES.decrypt(createPatientEvent.patient.lastName, ApplicationModelLocator.getInstance().aesKey, AES.BIT_KEY_256);
  39. }
  40. /**
  41. * Résultat de la commande
  42. *
  43. * @param result Un objet
  44. * @return void
  45. */
  46. override public function result( result : Object ) : void
  47. {
  48. var dispatcher : PatientFile = this.getDispatcher(this);
  49. dispatcher.createPatientCompleted();
  50. var resultEvent : ResultEvent = ResultEvent( result );
  51. var returnObjectVo : ReturnObjectVo = resultEvent.result as ReturnObjectVo;
  52. ApplicationModelLocator.getInstance().token = returnObjectVo.token;
  53. ApplicationModelLocator.getInstance().patientSelected.id = returnObjectVo.value;
  54. super.result( result );
  55. }
  56. /**
  57. * Résultat de la commande
  58. *
  59. * @param result Un objet
  60. * @return void
  61. */
  62. override public function fault( fault : Object ) : void
  63. {
  64. super.fault( fault );
  65. if (( fault as FaultEvent ).fault.faultString == ApplicationModelLocator.getInstance().ERROR_SESSION )
  66. {
  67. ApplicationModelLocator.displaySessionExpired( fault as FaultEvent );
  68. }
  69. else
  70. {
  71. var toastMessage : ImtToaster = new ImtToaster();
  72. toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'error.title');
  73. toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.createPatient') + " (" + ResourceManager.getInstance().getString('errors', ( fault as FaultEvent ).fault.faultString) +")";
  74. toastMessage.level = ImtToaster.ERROR;
  75. ApplicationModelLocator.getInstance().toaster.toast( toastMessage );
  76. }
  77. }
  78. }
  79. }