diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/appservice/IAnesthesiaAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/appservice/IAnesthesiaAppService.java index 974d50886..172eeb054 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/appservice/IAnesthesiaAppService.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/appservice/IAnesthesiaAppService.java @@ -1,8 +1,11 @@ package com.healthlink.his.web.anesthesia.appservice; +import com.healthlink.his.anesthesia.domain.AnesAsaAssessment; +import com.healthlink.his.anesthesia.domain.AnesSummary; import com.healthlink.his.anesthesia.domain.AnesthesiaFollowup; import com.healthlink.his.anesthesia.domain.AnesthesiaIoRecord; import com.healthlink.his.anesthesia.domain.AnesthesiaMedication; +import com.healthlink.his.anesthesia.domain.AnesthesiaPostopFollowup; import com.healthlink.his.anesthesia.domain.AnesthesiaRecord; import com.healthlink.his.anesthesia.domain.AnesthesiaVitalSign; import com.healthlink.his.anesthesia.dto.AnesthesiaIoSummaryDto; @@ -31,4 +34,20 @@ public interface IAnesthesiaAppService { AnesthesiaIoSummaryDto getIoSummary(Long recordId); void completeRecord(Long recordId); + + AnesAsaAssessment saveAsaAssessment(AnesAsaAssessment assessment); + + List getAsaAssessments(Long recordId); + + AnesthesiaVitalSign recordVitalSign(AnesthesiaVitalSign vitalSign); + + List getVitalSignTimeline(Long recordId); + + AnesSummary saveSummary(AnesSummary summary); + + AnesSummary getSummary(Long recordId); + + AnesthesiaPostopFollowup recordFollowup(AnesthesiaPostopFollowup followup); + + List getFollowups(Long encounterId); } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/appservice/impl/AnesthesiaAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/appservice/impl/AnesthesiaAppServiceImpl.java index 8c6bf041b..c14af9551 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/appservice/impl/AnesthesiaAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/appservice/impl/AnesthesiaAppServiceImpl.java @@ -1,18 +1,25 @@ package com.healthlink.his.web.anesthesia.appservice.impl; +import com.healthlink.his.anesthesia.domain.AnesAsaAssessment; +import com.healthlink.his.anesthesia.domain.AnesSummary; import com.healthlink.his.anesthesia.domain.AnesthesiaFollowup; import com.healthlink.his.anesthesia.domain.AnesthesiaIoRecord; import com.healthlink.his.anesthesia.domain.AnesthesiaMedication; +import com.healthlink.his.anesthesia.domain.AnesthesiaPostopFollowup; import com.healthlink.his.anesthesia.domain.AnesthesiaRecord; import com.healthlink.his.anesthesia.domain.AnesthesiaVitalSign; import com.healthlink.his.anesthesia.dto.AnesthesiaIoSummaryDto; import com.healthlink.his.anesthesia.dto.AnesthesiaRecordDetailDto; +import com.healthlink.his.anesthesia.service.IAnesAsaAssessmentService; +import com.healthlink.his.anesthesia.service.IAnesSummaryService; import com.healthlink.his.anesthesia.service.IAnesthesiaFollowupService; import com.healthlink.his.anesthesia.service.IAnesthesiaIoRecordService; +import com.healthlink.his.anesthesia.service.IAnesthesiaPostopFollowupService; import com.healthlink.his.anesthesia.service.IAnesthesiaMedicationService; import com.healthlink.his.anesthesia.service.IAnesthesiaRecordService; import com.healthlink.his.anesthesia.service.IAnesthesiaVitalSignService; import com.healthlink.his.web.anesthesia.appservice.IAnesthesiaAppService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,6 +46,15 @@ public class AnesthesiaAppServiceImpl implements IAnesthesiaAppService { @Resource private IAnesthesiaFollowupService anesthesiaFollowupService; + @Resource + private IAnesAsaAssessmentService anesAsaAssessmentService; + + @Resource + private IAnesSummaryService anesSummaryService; + + @Resource + private IAnesthesiaPostopFollowupService anesthesiaPostopFollowupService; + @Override @Transactional public AnesthesiaRecord createRecord(AnesthesiaRecord record) { @@ -125,4 +141,74 @@ public class AnesthesiaAppServiceImpl implements IAnesthesiaAppService { record.setEndTime(new Date()); anesthesiaRecordService.updateById(record); } + + @Override + @Transactional + public AnesAsaAssessment saveAsaAssessment(AnesAsaAssessment assessment) { + if (assessment.getId() != null) { + anesAsaAssessmentService.updateById(assessment); + } else { + anesAsaAssessmentService.save(assessment); + } + return assessment; + } + + @Override + public List getAsaAssessments(Long recordId) { + return anesAsaAssessmentService.selectByRecordId(recordId); + } + + @Override + @Transactional + public AnesthesiaVitalSign recordVitalSign(AnesthesiaVitalSign vitalSign) { + anesthesiaVitalSignService.save(vitalSign); + return vitalSign; + } + + @Override + public List getVitalSignTimeline(Long recordId) { + return anesthesiaVitalSignService.selectByRecordId(recordId); + } + + @Override + @Transactional + public AnesSummary saveSummary(AnesSummary summary) { + if (summary.getId() != null) { + anesSummaryService.updateById(summary); + } else { + AnesSummary existing = anesSummaryService.selectByRecordId(summary.getRecordId()); + if (existing != null) { + summary.setId(existing.getId()); + anesSummaryService.updateById(summary); + } else { + anesSummaryService.save(summary); + } + } + return summary; + } + + @Override + public AnesSummary getSummary(Long recordId) { + return anesSummaryService.selectByRecordId(recordId); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AnesthesiaPostopFollowup recordFollowup(AnesthesiaPostopFollowup followup) { + if (followup.getId() != null) { + anesthesiaPostopFollowupService.updateById(followup); + } else { + followup.setStatus(0); + anesthesiaPostopFollowupService.save(followup); + } + return followup; + } + + @Override + public List getFollowups(Long encounterId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(AnesthesiaPostopFollowup::getEncounterId, encounterId) + .orderByDesc(AnesthesiaPostopFollowup::getFollowupTime); + return anesthesiaPostopFollowupService.list(wrapper); + } } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/controller/AnesthesiaController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/controller/AnesthesiaController.java index 163c84e3a..9369b7d83 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/controller/AnesthesiaController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/anesthesia/controller/AnesthesiaController.java @@ -1,9 +1,12 @@ package com.healthlink.his.web.anesthesia.controller; import com.core.common.core.domain.R; +import com.healthlink.his.anesthesia.domain.AnesAsaAssessment; +import com.healthlink.his.anesthesia.domain.AnesSummary; import com.healthlink.his.anesthesia.domain.AnesthesiaFollowup; import com.healthlink.his.anesthesia.domain.AnesthesiaIoRecord; import com.healthlink.his.anesthesia.domain.AnesthesiaMedication; +import com.healthlink.his.anesthesia.domain.AnesthesiaPostopFollowup; import com.healthlink.his.anesthesia.domain.AnesthesiaRecord; import com.healthlink.his.anesthesia.domain.AnesthesiaVitalSign; import com.healthlink.his.anesthesia.dto.AnesthesiaIoSummaryDto; @@ -17,6 +20,7 @@ import com.healthlink.his.web.anesthesia.appservice.IAnesthesiaAppService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -134,4 +138,60 @@ public class AnesthesiaController { anesthesiaAppService.completeRecord(id); return R.ok(); } + + @PostMapping("/asa-assessment") + @Operation(summary = "保存ASA评估") + @PreAuthorize("@ss.hasPermi('inpatient:anesthesia:edit')") + public R saveAsaAssessment(@RequestBody AnesAsaAssessment assessment) { + return R.ok(anesthesiaAppService.saveAsaAssessment(assessment)); + } + + @GetMapping("/asa-assessment/{recordId}") + @Operation(summary = "查询ASA评估列表") + @PreAuthorize("@ss.hasPermi('inpatient:anesthesia:list')") + public R> getAsaAssessments(@PathVariable Long recordId) { + return R.ok(anesthesiaAppService.getAsaAssessments(recordId)); + } + + @PostMapping("/vital-sign/record") + @Operation(summary = "记录术中生命体征") + @PreAuthorize("@ss.hasPermi('inpatient:anesthesia:edit')") + public R recordVitalSign(@RequestBody AnesthesiaVitalSign vitalSign) { + return R.ok(anesthesiaAppService.recordVitalSign(vitalSign)); + } + + @GetMapping("/vital-sign/timeline/{recordId}") + @Operation(summary = "查询生命体征时间线") + @PreAuthorize("@ss.hasPermi('inpatient:anesthesia:list')") + public R> getVitalSignTimeline(@PathVariable Long recordId) { + return R.ok(anesthesiaAppService.getVitalSignTimeline(recordId)); + } + + @PostMapping("/summary") + @Operation(summary = "保存麻醉小结") + @PreAuthorize("@ss.hasPermi('inpatient:anesthesia:edit')") + public R saveSummary(@RequestBody AnesSummary summary) { + return R.ok(anesthesiaAppService.saveSummary(summary)); + } + + @GetMapping("/summary/{recordId}") + @Operation(summary = "获取麻醉小结") + @PreAuthorize("@ss.hasPermi('inpatient:anesthesia:list')") + public R getSummary(@PathVariable Long recordId) { + return R.ok(anesthesiaAppService.getSummary(recordId)); + } + + @PostMapping("/postop-followup") + @Operation(summary = "记录术后随访") + @PreAuthorize("@ss.hasPermi('inpatient:anesthesia:edit')") + public R recordFollowup(@RequestBody AnesthesiaPostopFollowup followup) { + return R.ok(anesthesiaAppService.recordFollowup(followup)); + } + + @GetMapping("/postop-followup/{encounterId}") + @Operation(summary = "查询术后随访列表") + @PreAuthorize("@ss.hasPermi('inpatient:anesthesia:list')") + public R> getPostopFollowups(@PathVariable Long encounterId) { + return R.ok(anesthesiaAppService.getFollowups(encounterId)); + } } diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V62__anes_asa_assessment.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V62__anes_asa_assessment.sql new file mode 100644 index 000000000..3360a66c9 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V62__anes_asa_assessment.sql @@ -0,0 +1,26 @@ +CREATE TABLE anes_asa_assessment ( + id BIGSERIAL PRIMARY KEY, + record_id BIGINT NOT NULL, + encounter_id BIGINT NOT NULL, + patient_id BIGINT NOT NULL, + asa_grade VARCHAR(5) NOT NULL, + assessment_time TIMESTAMP NOT NULL, + assessor_id BIGINT NOT NULL, + assessor_name VARCHAR(50), + airway_assessment TEXT, + mallampati_grade VARCHAR(5), + neck_mobility VARCHAR(50), + mouth_opening_cm DECIMAL(4,1), + weight_kg DECIMAL(6,2), + height_cm DECIMAL(5,1), + bmi DECIMAL(5,1), + npo_hours INTEGER, + asa_factors TEXT, + risk_level VARCHAR(20), + tenant_id BIGINT DEFAULT 0, + delete_flag CHAR(1) DEFAULT '0', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + create_by VARCHAR(64), + update_time TIMESTAMP, + update_by VARCHAR(64) +); diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V63__anes_summary.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V63__anes_summary.sql new file mode 100644 index 000000000..319c888ba --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V63__anes_summary.sql @@ -0,0 +1,29 @@ +CREATE TABLE anes_summary ( + id BIGSERIAL PRIMARY KEY, + record_id BIGINT NOT NULL, + encounter_id BIGINT NOT NULL, + patient_id BIGINT NOT NULL, + anesthesia_type VARCHAR(32), + anesthesia_start_time TIMESTAMP, + anesthesia_end_time TIMESTAMP, + surgery_start_time TIMESTAMP, + surgery_end_time TIMESTAMP, + intraop_blood_loss_ml INTEGER, + intraop_urine_ml INTEGER, + intraop_fluid_ml INTEGER, + blood_transfusion_ml INTEGER, + complications TEXT, + has_complications BOOLEAN DEFAULT FALSE, + airway_management VARCHAR(50), + extubation_time TIMESTAMP, + patient_condition VARCHAR(50), + summary TEXT, + anesthetist_id BIGINT, + anesthetist_name VARCHAR(50), + tenant_id BIGINT DEFAULT 0, + delete_flag CHAR(1) DEFAULT '0', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + create_by VARCHAR(64), + update_time TIMESTAMP, + update_by VARCHAR(64) +); diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/domain/AnesAsaAssessment.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/domain/AnesAsaAssessment.java new file mode 100644 index 000000000..55c903d88 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/domain/AnesAsaAssessment.java @@ -0,0 +1,58 @@ +package com.healthlink.his.anesthesia.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 com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("anes_asa_assessment") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class AnesAsaAssessment extends HisBaseEntity { + + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + private Long recordId; + + private Long encounterId; + + private Long patientId; + + private String asaGrade; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date assessmentTime; + + private Long assessorId; + + private String assessorName; + + private String airwayAssessment; + + private String mallampatiGrade; + + private String neckMobility; + + private BigDecimal mouthOpeningCm; + + private BigDecimal weightKg; + + private BigDecimal heightCm; + + private BigDecimal bmi; + + private Integer npoHours; + + private String asaFactors; + + private String riskLevel; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/domain/AnesSummary.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/domain/AnesSummary.java new file mode 100644 index 000000000..fa13bf608 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/domain/AnesSummary.java @@ -0,0 +1,67 @@ +package com.healthlink.his.anesthesia.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 com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +@Data +@TableName("anes_summary") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class AnesSummary extends HisBaseEntity { + + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + private Long recordId; + + private Long encounterId; + + private Long patientId; + + private String anesthesiaType; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date anesthesiaStartTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date anesthesiaEndTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date surgeryStartTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date surgeryEndTime; + + private Integer intraopBloodLossMl; + + private Integer intraopUrineMl; + + private Integer intraopFluidMl; + + private Integer bloodTransfusionMl; + + private String complications; + + private Boolean hasComplications; + + private String airwayManagement; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date extubationTime; + + private String patientCondition; + + private String summary; + + private Long anesthetistId; + + private String anesthetistName; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/mapper/AnesAsaAssessmentMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/mapper/AnesAsaAssessmentMapper.java new file mode 100644 index 000000000..e8b4beff6 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/mapper/AnesAsaAssessmentMapper.java @@ -0,0 +1,14 @@ +package com.healthlink.his.anesthesia.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.anesthesia.domain.AnesAsaAssessment; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface AnesAsaAssessmentMapper extends BaseMapper { + + List selectByRecordId(@Param("recordId") Long recordId); +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/mapper/AnesSummaryMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/mapper/AnesSummaryMapper.java new file mode 100644 index 000000000..01c31e0bb --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/mapper/AnesSummaryMapper.java @@ -0,0 +1,12 @@ +package com.healthlink.his.anesthesia.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.anesthesia.domain.AnesSummary; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface AnesSummaryMapper extends BaseMapper { + + AnesSummary selectByRecordId(@Param("recordId") Long recordId); +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/IAnesAsaAssessmentService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/IAnesAsaAssessmentService.java new file mode 100644 index 000000000..939ca097e --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/IAnesAsaAssessmentService.java @@ -0,0 +1,11 @@ +package com.healthlink.his.anesthesia.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.anesthesia.domain.AnesAsaAssessment; + +import java.util.List; + +public interface IAnesAsaAssessmentService extends IService { + + List selectByRecordId(Long recordId); +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/IAnesSummaryService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/IAnesSummaryService.java new file mode 100644 index 000000000..81e7d99cf --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/IAnesSummaryService.java @@ -0,0 +1,9 @@ +package com.healthlink.his.anesthesia.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.anesthesia.domain.AnesSummary; + +public interface IAnesSummaryService extends IService { + + AnesSummary selectByRecordId(Long recordId); +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/impl/AnesAsaAssessmentServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/impl/AnesAsaAssessmentServiceImpl.java new file mode 100644 index 000000000..8d13a74f2 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/impl/AnesAsaAssessmentServiceImpl.java @@ -0,0 +1,20 @@ +package com.healthlink.his.anesthesia.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.anesthesia.domain.AnesAsaAssessment; +import com.healthlink.his.anesthesia.mapper.AnesAsaAssessmentMapper; +import com.healthlink.his.anesthesia.service.IAnesAsaAssessmentService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class AnesAsaAssessmentServiceImpl + extends ServiceImpl + implements IAnesAsaAssessmentService { + + @Override + public List selectByRecordId(Long recordId) { + return baseMapper.selectByRecordId(recordId); + } +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/impl/AnesSummaryServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/impl/AnesSummaryServiceImpl.java new file mode 100644 index 000000000..1e80b1434 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/anesthesia/service/impl/AnesSummaryServiceImpl.java @@ -0,0 +1,18 @@ +package com.healthlink.his.anesthesia.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.anesthesia.domain.AnesSummary; +import com.healthlink.his.anesthesia.mapper.AnesSummaryMapper; +import com.healthlink.his.anesthesia.service.IAnesSummaryService; +import org.springframework.stereotype.Service; + +@Service +public class AnesSummaryServiceImpl + extends ServiceImpl + implements IAnesSummaryService { + + @Override + public AnesSummary selectByRecordId(Long recordId) { + return baseMapper.selectByRecordId(recordId); + } +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/resources/mapper/anesthesia/AnesAsaAssessmentMapper.xml b/healthlink-his-server/healthlink-his-domain/src/main/resources/mapper/anesthesia/AnesAsaAssessmentMapper.xml new file mode 100644 index 000000000..695f4c9da --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/resources/mapper/anesthesia/AnesAsaAssessmentMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/healthlink-his-server/healthlink-his-domain/src/main/resources/mapper/anesthesia/AnesSummaryMapper.xml b/healthlink-his-server/healthlink-his-domain/src/main/resources/mapper/anesthesia/AnesSummaryMapper.xml new file mode 100644 index 000000000..6181aacd8 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/resources/mapper/anesthesia/AnesSummaryMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/healthlink-his-ui/src/api/anesthesia.js b/healthlink-his-ui/src/api/anesthesia.js index 0a6b9e24c..73a3aef09 100644 --- a/healthlink-his-ui/src/api/anesthesia.js +++ b/healthlink-his-ui/src/api/anesthesia.js @@ -69,3 +69,27 @@ export function getFollowup(recordId) { export function addFollowup(data) { return request({ url: '/api/v1/anesthesia/followup', method: 'post', data }) } + +export function saveAsaAssessment(data) { + return request({ url: '/api/v1/anesthesia/asa-assessment', method: 'post', data }) +} + +export function getAsaAssessments(recordId) { + return request({ url: '/api/v1/anesthesia/asa-assessment/' + recordId, method: 'get' }) +} + +export function recordVitalSign(data) { + return request({ url: '/api/v1/anesthesia/vital-sign/record', method: 'post', data }) +} + +export function getVitalSignTimeline(recordId) { + return request({ url: '/api/v1/anesthesia/vital-sign/timeline/' + recordId, method: 'get' }) +} + +export function saveAnesSummary(data) { + return request({ url: '/api/v1/anesthesia/summary', method: 'post', data }) +} + +export function getAnesSummary(recordId) { + return request({ url: '/api/v1/anesthesia/summary/' + recordId, method: 'get' }) +} diff --git a/healthlink-his-ui/src/api/anesthesia/index.js b/healthlink-his-ui/src/api/anesthesia/index.js index 3c529d7d0..52daecca2 100644 --- a/healthlink-his-ui/src/api/anesthesia/index.js +++ b/healthlink-his-ui/src/api/anesthesia/index.js @@ -7,3 +7,5 @@ export function getVitalSigns(recordId) { return request({ url: '/api/v1/anesthe export function getMedications(recordId) { return request({ url: '/api/v1/anesthesia/medication/' + recordId, method: 'get' }) } export function getIoSummary(recordId) { return request({ url: '/api/v1/anesthesia/io-summary/' + recordId, method: 'get' }) } export function completeRecord(id) { return request({ url: '/api/v1/anesthesia/complete/' + id, method: 'put' }) } +export function recordPostopFollowup(data) { return request({ url: '/api/v1/anesthesia/postop-followup', method: 'post', data }) } +export function getPostopFollowups(encounterId) { return request({ url: '/api/v1/anesthesia/postop-followup/' + encounterId, method: 'get' }) } diff --git a/healthlink-his-ui/src/views/inpatientDoctor/AnesthesiaAssessment.vue b/healthlink-his-ui/src/views/inpatientDoctor/AnesthesiaAssessment.vue new file mode 100644 index 000000000..18bd54745 --- /dev/null +++ b/healthlink-his-ui/src/views/inpatientDoctor/AnesthesiaAssessment.vue @@ -0,0 +1,349 @@ + + + + + diff --git a/healthlink-his-ui/src/views/inpatientDoctor/AnesthesiaSummary.vue b/healthlink-his-ui/src/views/inpatientDoctor/AnesthesiaSummary.vue new file mode 100644 index 000000000..62570423e --- /dev/null +++ b/healthlink-his-ui/src/views/inpatientDoctor/AnesthesiaSummary.vue @@ -0,0 +1,336 @@ + + + + + diff --git a/healthlink-his-ui/src/views/inpatientDoctor/IntraopVitalSign.vue b/healthlink-his-ui/src/views/inpatientDoctor/IntraopVitalSign.vue new file mode 100644 index 000000000..9bfadc7f3 --- /dev/null +++ b/healthlink-his-ui/src/views/inpatientDoctor/IntraopVitalSign.vue @@ -0,0 +1,315 @@ + + + + + diff --git a/healthlink-his-ui/src/views/inpatientDoctor/PostopFollowup.vue b/healthlink-his-ui/src/views/inpatientDoctor/PostopFollowup.vue new file mode 100644 index 000000000..c34921d80 --- /dev/null +++ b/healthlink-his-ui/src/views/inpatientDoctor/PostopFollowup.vue @@ -0,0 +1,281 @@ + + + + +