2 lines
3.1 KiB
JavaScript
2 lines
3.1 KiB
JavaScript
import{D as e,C as t}from"./index-DR4MYR5F.js";import{a as n,A as r}from"./auth.CseBt7py.js";const i={recommended:"/case/mobile/recommended/",specialty:"/case/mobile/specialty/",weak:"/case/mobile/weak/",teaching:"/case/mobile/teaching/","teacher-task":"/case/mobile/teacher-task/"},o=["blue","teal","pink","orange","purple","green"];async function c(e="recommended",c={}){const s=i[e]||i.recommended,a=await function(e,i){return new Promise(((o,c)=>{t({url:`${n}${m(e,i)}`,method:"GET",timeout:1e4,header:u(),success:e=>{if(e.statusCode>=200&&e.statusCode<300)return void o(e.data);const t=e.data,n="string"==typeof(null==t?void 0:t.code)?t.code:void 0;c(new r(function(e,t){if(e&&"object"==typeof e){const t=e,n=t.message||t.detail||t.error;if("string"==typeof n&&n.trim())return n}return t}(e.data,`病例列表加载失败(${e.statusCode})`),n,e.statusCode))},fail:e=>{c(new r(e.errMsg||"无法连接服务"))}})}))}(s,c),f=function(e,t){const n=Array.isArray(e.results)?e.results:[];return{count:l(e.count,n.length),next:"string"==typeof e.next?e.next:null,previous:"string"==typeof e.previous?e.previous:null,results:n.map(((e,n)=>function(e,t,n){const r=d(e.id,`case-${n+1}`),i=d(e.title,"未命名病例"),c=(y=e.patient_gender,"female"===y||"女"===y?"女":"男"),s=d(e.department_name,"未配置科室"),a=d(e.case_type),u=d(e.case_type_display,a||"练习病例"),m=d(e.chief_complaint,i),f="teaching"===t||"teaching"===a?"teaching":"training";var y;return{id:r,title:i,patientName:"女"===c?"患者女士":"患者先生",gender:c,age:l(e.patient_age,0),department:s,departmentId:p(e.department),scene:u,caseNo:r,tone:o[n%o.length],mode:f,caseType:a,caseTypeDisplay:u,difficulty:d(e.difficulty),difficultyScore:p(e.difficulty_score),chiefComplaint:m,description:d(e.description),tags:d(e.tags),competencyTags:Array.isArray(e.competency_tags)?e.competency_tags.map(String):[],estimatedMinutes:p(e.estimated_minutes),osceEnabled:Boolean(e.osce_enabled),myBestScore:"number"==typeof e.my_best_score?e.my_best_score:null,myTrainCount:"number"==typeof e.my_train_count?e.my_train_count:null,createdAt:d(e.created_at),source:t}}(e,t,n)))}}(a,e);return f}function s(){const t=e("clinical-thinking-selected-case");return t&&"object"==typeof t?t:null}function a(e){if(!e)return 0;const t=Number(e.id);if(Number.isInteger(t)&&t>0)return t;const n=Number(e.caseNo);if(Number.isInteger(n)&&n>0)return n;const r=String(e.id).match(/\d+/),i=r?Number(r[0]):0;return Number.isInteger(i)&&i>0?i:0}function u(){const t={"Content-Type":"application/json",Accept:"application/json"},n=function(){try{const t=e("clinical-thinking-access-token");return"string"==typeof t?t.trim():""}catch{return""}}();return n&&(t.Authorization=`Bearer ${n}`),t}function m(e,t){const n=Object.entries(t).filter((([,e])=>null!=e&&""!==e)).map((([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(String(t))}`)).join("&");return n?`${e}?${n}`:e}function d(e,t=""){return"string"==typeof e?e.trim()||t:"number"==typeof e?String(e):t}function l(e,t=0){const n=Number(e);return Number.isFinite(n)?n:t}function p(e){const t=Number(e);return Number.isFinite(t)?t:void 0}export{a,c as f,s as r};
|