MedicalRecordController.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace App\Http\Controllers\Admin\TCM;
  3. use App\Http\Controllers\Controller;
  4. use App\Repositories\Criteria\TCM\PatientCriteria;
  5. use App\Repositories\Enums\ResponseCodeEnum;
  6. use App\Repositories\Models\TCM\MedicalRecord;
  7. use Illuminate\Http\Request;
  8. use App\Http\Requests;
  9. use Jiannei\Response\Laravel\Support\Facades\Response;
  10. use Overtrue\LaravelPinyin\Facades\Pinyin;
  11. use Prettus\Validator\Contracts\ValidatorInterface;
  12. use Prettus\Validator\Exceptions\ValidatorException;
  13. use App\Contracts\Repositories\TCM\MedicalRecordRepository;
  14. use App\Repositories\Validators\TCM\MedicalRecordValidator;
  15. /**
  16. * Class MedicalRecordsController.
  17. *
  18. * @package namespace App\Http\Controllers\TCM;
  19. */
  20. class MedicalRecordController extends Controller
  21. {
  22. /**
  23. * @var MedicalRecordRepository
  24. */
  25. protected $repository;
  26. /**
  27. * @var MedicalRecordValidator
  28. */
  29. protected $validator;
  30. /**
  31. * MedicalRecordsController constructor.
  32. *
  33. * @param MedicalRecordRepository $repository
  34. * @param MedicalRecordValidator $validator
  35. */
  36. public function __construct(MedicalRecordRepository $repository, MedicalRecordValidator $validator)
  37. {
  38. $this->repository = $repository;
  39. $this->validator = $validator;
  40. }
  41. public function index()
  42. {
  43. $lists = $this->repository->paginate(request('per_page', self::PAGE_NUM));
  44. return Response::success($lists);
  45. }
  46. public function store(Request $request)
  47. {
  48. $this->validate($request, $this->validator->getRules(ValidatorInterface::RULE_CREATE));
  49. try {
  50. $data = $request->only(array_keys($this->validator->getRules(ValidatorInterface::RULE_CREATE)));
  51. $data['admin_id'] = login_admin_id();
  52. $record = $this->repository->create($data);
  53. return Response::success($record);
  54. } catch (\Exception $e) {
  55. return $this->errorStore($e);
  56. }
  57. }
  58. public function show($id)
  59. {
  60. $patient = $this->repository->find($id);
  61. return Response::success($patient);
  62. }
  63. public function update(Request $request, $id)
  64. {
  65. $this->validate($request, $this->validator->getRules(ValidatorInterface::RULE_UPDATE));
  66. try {
  67. $data = $request->only(array_keys($this->validator->getRules(ValidatorInterface::RULE_UPDATE)));
  68. $record = $this->repository->update($data, $id);
  69. return Response::success($record);
  70. } catch (\Exception $e) {
  71. $this->errorStore($e);
  72. }
  73. }
  74. public function destroy($id)
  75. {
  76. try {
  77. $re = $this->repository->delete($id);
  78. if ($re) {
  79. return Response::success(null, T('successfully delete.'));
  80. }
  81. return Response::fail(T('Delete failed.'), ResponseCodeEnum::SERVICE_UPDATE_DATA_ERROR);
  82. } catch (\Exception $exception) {
  83. return Response::fail(T('Delete failed.'), ResponseCodeEnum::SERVICE_UPDATE_DATA_ERROR);
  84. }
  85. }
  86. }