HospitalResource.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { Response } from 'express';
  2. import { formatISOWithoutTimezone } from '../../../utils/FormatDate';
  3. import { HospitalDTO } from '../../../types/sales/hospital/HospitalDTO';
  4. import prisma from '../../../prisma/PrismaClient';
  5. const formatItem = (item: HospitalDTO) => ({
  6. ...item,
  7. createdAt: formatISOWithoutTimezone(item.createdAt),
  8. updatedAt: formatISOWithoutTimezone(item.updatedAt),
  9. });
  10. export const HospitalResource = async (res: Response, data: HospitalDTO, message: string = 'Success'): Promise<Response> => {
  11. const tags = await prisma.categoryLink.findMany({
  12. where: {
  13. source_id: data.id,
  14. source_type: { in: ['hospital_notes'] },
  15. deletedAt: null,
  16. },
  17. include: {
  18. Category: true,
  19. },
  20. });
  21. const note_tags = tags
  22. .filter(t => t.source_type === 'hospital_notes')
  23. .map(t => t.Category?.tag ?? '');
  24. const { created_by, ...cleanedData } = data;
  25. const formatted = {
  26. ...formatItem(cleanedData),
  27. note_tags,
  28. };
  29. return res.status(200).json({
  30. success: true,
  31. message,
  32. data: formatted,
  33. });
  34. };