diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/appservice/ITcmAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/appservice/ITcmAppService.java index 70cc78044..74c93f84d 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/appservice/ITcmAppService.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/appservice/ITcmAppService.java @@ -8,4 +8,7 @@ public interface ITcmAppService { TcmConstitutionAssessment assess(TcmConstitutionAssessment a); List getAssessmentsByEncounter(Long encounterId); Map getStatistics(); + TcmDiagnosis saveDiagnosis(TcmDiagnosis d); + List getDiagnosesByEncounter(Long encounterId); + TcmConstitutionAssessment saveConstitution(TcmConstitutionAssessment a); } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/appservice/impl/TcmAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/appservice/impl/TcmAppServiceImpl.java index 50074cb2a..c8e4b025d 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/appservice/impl/TcmAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/appservice/impl/TcmAppServiceImpl.java @@ -10,6 +10,7 @@ import java.util.*; public class TcmAppServiceImpl implements ITcmAppService { @Autowired private ITcmPrescriptionService prescriptionService; @Autowired private ITcmConstitutionAssessmentService assessmentService; + @Autowired private ITcmDiagnosisService diagnosisService; @Override public List getPrescriptions(String type) { @@ -33,4 +34,13 @@ public class TcmAppServiceImpl implements ITcmAppService { r.put("totalAssessments", assessmentService.count(new LambdaQueryWrapper().eq(TcmConstitutionAssessment::getDeleteFlag, "0"))); return r; } + @Override + public TcmDiagnosis saveDiagnosis(TcmDiagnosis d) { d.setDeleteFlag("0"); d.setEnabled("1"); diagnosisService.save(d); return d; } + @Override + public List getDiagnosesByEncounter(Long encounterId) { + return diagnosisService.list(new LambdaQueryWrapper() + .eq(TcmDiagnosis::getEncounterId, encounterId).eq(TcmDiagnosis::getDeleteFlag, "0")); + } + @Override + public TcmConstitutionAssessment saveConstitution(TcmConstitutionAssessment a) { a.setDeleteFlag("0"); assessmentService.save(a); return a; } } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/controller/TcmController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/controller/TcmController.java index 0ce371277..10aff86a5 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/controller/TcmController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tcm/controller/TcmController.java @@ -5,19 +5,37 @@ import com.healthlink.his.web.tcm.appservice.ITcmAppService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; @Tag(name = "壮医中医特色") @RestController @RequestMapping("/api/v1/tcm") public class TcmController { @Autowired private ITcmAppService tcmAppService; + @Operation(summary = "中医方剂列表") @GetMapping("/prescriptions") + @PreAuthorize("hasAuthority('tcm:edit')") public AjaxResult prescriptions(@RequestParam(required = false) String type) { return AjaxResult.success(tcmAppService.getPrescriptions(type)); } @Operation(summary = "新增方剂") @PostMapping("/prescription") + @PreAuthorize("hasAuthority('tcm:edit')") public AjaxResult savePrescription(@RequestBody TcmPrescription p) { return AjaxResult.success(tcmAppService.savePrescription(p)); } + @Operation(summary = "统计") @GetMapping("/statistics") + @PreAuthorize("hasAuthority('tcm:list')") + public AjaxResult statistics() { return AjaxResult.success(tcmAppService.getStatistics()); } + @Operation(summary = "体质辨识") @PostMapping("/constitution") + @PreAuthorize("hasAuthority('tcm:edit')") public AjaxResult assess(@RequestBody TcmConstitutionAssessment a) { return AjaxResult.success(tcmAppService.assess(a)); } @Operation(summary = "体质辨识记录") @GetMapping("/constitution/encounter/{encounterId}") + @PreAuthorize("hasAuthority('tcm:list')") public AjaxResult getAssessments(@PathVariable Long encounterId) { return AjaxResult.success(tcmAppService.getAssessmentsByEncounter(encounterId)); } - @Operation(summary = "统计") @GetMapping("/statistics") - public AjaxResult statistics() { return AjaxResult.success(tcmAppService.getStatistics()); } + @Operation(summary = "保存体质辨识") @PostMapping("/constitution/save") + @PreAuthorize("hasAuthority('tcm:edit')") + public AjaxResult saveConstitution(@RequestBody TcmConstitutionAssessment a) { return AjaxResult.success(tcmAppService.saveConstitution(a)); } + + @Operation(summary = "保存诊断") @PostMapping("/diagnosis") + @PreAuthorize("hasAuthority('tcm:edit')") + public AjaxResult saveDiagnosis(@RequestBody TcmDiagnosis d) { return AjaxResult.success(tcmAppService.saveDiagnosis(d)); } + @Operation(summary = "诊断记录") @GetMapping("/diagnosis/encounter/{encounterId}") + @PreAuthorize("hasAuthority('tcm:list')") + public AjaxResult getDiagnoses(@PathVariable Long encounterId) { return AjaxResult.success(tcmAppService.getDiagnosesByEncounter(encounterId)); } } diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V68__tcm_diagnosis_table.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V68__tcm_diagnosis_table.sql new file mode 100644 index 000000000..8fcc59dc9 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V68__tcm_diagnosis_table.sql @@ -0,0 +1,22 @@ +-- TCM diagnosis table +CREATE TABLE IF NOT EXISTS healthlink_his.tcm_diagnosis ( + id BIGSERIAL PRIMARY KEY, + encounter_id BIGINT, + patient_id BIGINT, + diagnosis_type VARCHAR(50), + diagnosis_name VARCHAR(200), + diagnosis_code VARCHAR(50), + syndrome_type VARCHAR(50), + syndrome_name VARCHAR(200), + syndrome_code VARCHAR(50), + remark TEXT, + enabled CHAR(1) DEFAULT '1', + tenant_id INTEGER DEFAULT 0, + delete_flag CHAR(1) DEFAULT '0', + create_by VARCHAR(64), + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64), + update_time TIMESTAMP +); + +CREATE INDEX IF NOT EXISTS idx_tcm_diagnosis_encounter ON healthlink_his.tcm_diagnosis(encounter_id); diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/domain/TcmDiagnosis.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/domain/TcmDiagnosis.java new file mode 100644 index 000000000..169794e42 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/domain/TcmDiagnosis.java @@ -0,0 +1,28 @@ +package com.healthlink.his.tcm.domain; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import java.util.Date; + +@Data +@TableName("tcm_diagnosis") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = true) +public class TcmDiagnosis extends HisBaseEntity { + @TableId(type = IdType.ASSIGN_ID) + private Long id; + private Long encounterId; + private Long patientId; + private String diagnosisType; + private String diagnosisName; + private String diagnosisCode; + private String syndromeType; + private String syndromeName; + private String syndromeCode; + private String remark; + private String enabled; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/mapper/TcmDiagnosisMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/mapper/TcmDiagnosisMapper.java new file mode 100644 index 000000000..c424501cf --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/mapper/TcmDiagnosisMapper.java @@ -0,0 +1,5 @@ +package com.healthlink.his.tcm.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.tcm.domain.TcmDiagnosis; +import org.apache.ibatis.annotations.Mapper; +@Mapper public interface TcmDiagnosisMapper extends BaseMapper {} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/service/ITcmDiagnosisService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/service/ITcmDiagnosisService.java new file mode 100644 index 000000000..4d587b471 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/service/ITcmDiagnosisService.java @@ -0,0 +1,4 @@ +package com.healthlink.his.tcm.service; +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.tcm.domain.TcmDiagnosis; +public interface ITcmDiagnosisService extends IService {} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/service/impl/TcmDiagnosisServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/service/impl/TcmDiagnosisServiceImpl.java new file mode 100644 index 000000000..55e0d8587 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/tcm/service/impl/TcmDiagnosisServiceImpl.java @@ -0,0 +1,7 @@ +package com.healthlink.his.tcm.service.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.tcm.domain.TcmDiagnosis; +import com.healthlink.his.tcm.mapper.TcmDiagnosisMapper; +import com.healthlink.his.tcm.service.ITcmDiagnosisService; +import org.springframework.stereotype.Service; +@Service public class TcmDiagnosisServiceImpl extends ServiceImpl implements ITcmDiagnosisService {} diff --git a/healthlink-his-ui/src/views/tcm/TcmDiagnosis.vue b/healthlink-his-ui/src/views/tcm/TcmDiagnosis.vue new file mode 100644 index 000000000..a02dc9976 --- /dev/null +++ b/healthlink-his-ui/src/views/tcm/TcmDiagnosis.vue @@ -0,0 +1,300 @@ + + +