request.ts 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. import { Get, Post } from "../../lib/request/method";
  2. export function getNotDealLists() {
  3. return Post(
  4. "/surplus/getPatientPendingWorks",
  5. {},
  6. {
  7. transform({ data }: AnyObject) {
  8. return Array.isArray(data)
  9. ? data.map((item) => ({
  10. ...item,
  11. }))
  12. : [];
  13. },
  14. }
  15. );
  16. }
  17. // 获取调养计划
  18. export function getCareList() {
  19. return Post(
  20. "/patientCrManage/getCurrentPcrs",
  21. {},
  22. {
  23. transform({ data }: AnyObject) {
  24. return data;
  25. },
  26. }
  27. );
  28. }
  29. // 慢病管理入口(拆成两个接口):
  30. // 1. 判断首页按钮是否显示;2. 点击时获取 H5 跳转链接。
  31. // TODO: 接口路径与返回字段需与后端确认,以下为占位实现
  32. // 接口一:判断慢病管理按钮是否显示
  33. export function getChronicDiseaseManageVisible() {
  34. return Post(
  35. "/chronicDiseaseManage/checkShow",
  36. {},
  37. {
  38. transform({ data }: AnyObject) {
  39. const raw = data?.showFlag;
  40. // 兼容后端可能的取值:true / 1 / "1" / "Y" 视为显示,其余隐藏
  41. return (
  42. raw === true || raw === 1 || raw === "1" || raw === "Y" || raw === "y"
  43. );
  44. },
  45. }
  46. );
  47. }
  48. // 接口二:获取慢病管理 H5 跳转链接
  49. // 后端返回完整的、带鉴权参数的链接,小程序直接打开即可
  50. export function getChronicDiseaseManageUrl() {
  51. return Post(
  52. "/chronicDiseaseManage/getUrl",
  53. {},
  54. {
  55. transform({ data }: AnyObject) {
  56. // 兼容:直接返回字符串,或 { url } / { h5Url } / { link }
  57. if (typeof data === "string") return data;
  58. return data?.url || data?.h5Url || data?.link || "";
  59. },
  60. }
  61. );
  62. }
  63. export function getPatients(id?: string) {
  64. id ??= wx.getStorageSync("patientId");
  65. const transform = ({ data }: AnyObject) => {
  66. const patient =
  67. void 0 ??
  68. data.find((item: AnyObject) => item.patientId == id) ??
  69. data.find((item: AnyObject) => item.isDefault?.toUpperCase() === "Y") ??
  70. data[0];
  71. return { patient, patients: data };
  72. };
  73. return Post("/mobileAccountManage/getPatsByAid", {}, { transform }).then(
  74. (res) => {
  75. const patientId = res.patient?.patientId;
  76. if (patientId) wx.setStorageSync("patientId", patientId);
  77. else wx.removeStorageSync("patientId");
  78. return res;
  79. }
  80. );
  81. }
  82. export async function getPatientDescription(patient: {
  83. sex: "0" | "1";
  84. patientId: string;
  85. }) {
  86. if (patient.sex === "0") return "";
  87. try {
  88. const transform = ({ data }: any) => data;
  89. const dict = await Get("/dict/getDicts", { transform });
  90. const options = dict.find(
  91. (item: any) => item.dictType === "women_special_period"
  92. ).items;
  93. const { womenSpecialPeriod } = await Post(
  94. "/patientInfoManage/getPatientInfoDetail",
  95. {},
  96. { transform }
  97. );
  98. if (womenSpecialPeriod)
  99. return womenSpecialPeriod
  100. .split(",")
  101. .map((k: string) => {
  102. const [key, value] = k.split(":");
  103. const label = options.find(
  104. (option: any) => option.dictValue === key
  105. ).dictLabel;
  106. return value ?? label !== "无" ? label : "";
  107. })
  108. .filter(Boolean)
  109. .join(",");
  110. } catch (error) {
  111. return "";
  112. }
  113. }
  114. export function healthReportMethod() {
  115. const transform = ({ data }: AnyObject) => {
  116. if (Array.isArray(data?.conditProgram?.types)) {
  117. data.conditProgram.types = data.conditProgram.types.map(
  118. (item: AnyObject) => (
  119. (item.summary = item.summary?.replace(/null/g, "") || ""), item
  120. )
  121. );
  122. }
  123. return data;
  124. };
  125. return Post(`/analysisManage/getLastHealRepDetail`, {}, { transform });
  126. }
  127. export function healthIndexMethod() {
  128. const transform = ({ data }: AnyObject) => {
  129. return Array.isArray(data)
  130. ? data.map((item) => ({
  131. ...item,
  132. ...item.patientQuotaRecordDTOS?.slice(-1)[0],
  133. }))
  134. : [];
  135. };
  136. return Post(`/patientQuota/getCurQuoval`, {}, { transform });
  137. }
  138. export function getSolarTerms() {
  139. return Get(`/solarTerm/getCurSolarTerm`, {
  140. transform({ data }) {
  141. return { description: data };
  142. },
  143. });
  144. }
  145. export function getShortScienceList(page = 1, size = 3) {
  146. return Post(
  147. `/psarticle/pagePsarticle?pageNum=${page}&pageSize=${size}`,
  148. void 0,
  149. {
  150. transform({ data }: AnyObject) {
  151. return {
  152. total: data.total,
  153. page: data?.current ?? page,
  154. size: data?.size ?? size,
  155. data: data.data.map(
  156. (item: AnyObject) => (
  157. (item.id = item.popularScienceArticleId), item
  158. )
  159. ),
  160. };
  161. },
  162. }
  163. );
  164. }
  165. // 跳转聊天页面
  166. export function toChats(component: "guide" | "questionnaire") {
  167. const navigate = wx.navigateTo({
  168. url: `/module/chats/pages/index/index?component=${component}`,
  169. });
  170. return navigate;
  171. }
  172. export function getPatientPhone() {
  173. return Post(
  174. `/patientInfoManage/getPatientInfoDetail`,
  175. {},
  176. {
  177. transform({ data }: AnyObject) {
  178. return data;
  179. },
  180. }
  181. );
  182. }
  183. // 获取订单列表
  184. export function getOrderList(
  185. patientId: string | number,
  186. progress: string | number
  187. ) {
  188. return Post(
  189. `/patientCrManage/pagePcrOrders`,
  190. { patientId, status: 0, progress },
  191. {
  192. transform({ data }: AnyObject) {
  193. return data;
  194. },
  195. }
  196. );
  197. }
  198. // 获取各状态调理记录数量
  199. export function getRecordCountMethod() {
  200. return Post(`/patientCrManage/getDiffProgressPcrCount`, {
  201. transform({ data }: AnyObject) {
  202. return data;
  203. },
  204. });
  205. }
  206. // 获取患者线上调理方案打卡记录
  207. export function getPatientOnlineRecord(
  208. id: string | number,
  209. startDate: string,
  210. endDate: string
  211. ) {
  212. return Get(`/patientCrManage/ponlineCp/${id}`, {
  213. params: { startDate, endDate },
  214. transform({ data }: AnyObject) {
  215. return data;
  216. },
  217. });
  218. }
  219. // 线上调理方案补卡
  220. export function addPatientOnlineRecord(id: string | number) {
  221. return Post(
  222. `/patientCrManage/clockIn/repair/${id}`,
  223. {},
  224. {
  225. transform({ data }: AnyObject) {
  226. return data;
  227. },
  228. }
  229. );
  230. }
  231. // 线上调理方案打卡
  232. export function addPatientOnlineRecordClockIn(id: string | number) {
  233. return Post(
  234. `/patientCrManage/clockIn/${id}`,
  235. {},
  236. {
  237. transform({ data }: AnyObject) {
  238. return data;
  239. },
  240. }
  241. );
  242. }