Merge remote-tracking branch 'origin/develop' into zhaoyun
@@ -47,7 +47,7 @@
|
||||
|
||||
**铁律2: Flyway 数据库迁移**
|
||||
- 凡是新建表、新增字段,必须创建 Flyway 迁移脚本
|
||||
- 路径:`healthlink-his-domain/src/main/resources/db/migration/`
|
||||
- 路径:`healthlink-his-application/src/main/resources/db/migration/`
|
||||
- 命名:`V{版本号}__{描述}.sql`(双下划线)
|
||||
|
||||
**铁律3: 测试通过后才提交**
|
||||
@@ -184,7 +184,7 @@
|
||||
|
||||
**铁律2: Flyway 数据库迁移**
|
||||
- 凡是新建表、新增字段,必须创建 Flyway 迁移脚本
|
||||
- 路径:`healthlink-his-domain/src/main/resources/db/migration/`
|
||||
- 路径:`healthlink-his-application/src/main/resources/db/migration/`
|
||||
- 命名:`V{版本号}__{描述}.sql`(双下划线)
|
||||
|
||||
**铁律3: 测试通过后才提交**
|
||||
|
||||
2
RULES.md
@@ -40,7 +40,7 @@
|
||||
|
||||
**铁律2: Flyway 数据库迁移**
|
||||
- 凡是新建表、新增字段,必须创建 Flyway 迁移脚本
|
||||
- 路径:`healthlink-his-domain/src/main/resources/db/migration/`
|
||||
- 路径:`healthlink-his-application/src/main/resources/db/migration/`
|
||||
- 命名:`V{版本号}__{描述}.sql`(双下划线)
|
||||
|
||||
**铁律3: 测试通过后才提交**
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
**铁律2: Flyway 数据库迁移**
|
||||
- 凡是新建表、新增字段,必须创建 Flyway 迁移脚本
|
||||
- 路径:`healthlink-his-domain/src/main/resources/db/migration/`
|
||||
- 路径:`healthlink-his-application/src/main/resources/db/migration/`
|
||||
- 命名:`V{版本号}__{描述}.sql`(双下划线)
|
||||
|
||||
**铁律3: 测试通过后才提交**
|
||||
|
||||
@@ -39,7 +39,7 @@ public interface IInHospitalRegisterAppService {
|
||||
*/
|
||||
IPage<InHospitalRegisterQueryDto> getRegisterInfo(InHospitalRegisterQueryDto inHospitalRegisterQueryDto,
|
||||
String searchKey, String registeredFlag, Integer pageNo, Integer pageSize,
|
||||
Date startTime, Date endTime, Long organizationId, HttpServletRequest request);
|
||||
Date startTime, Date endTime, Long organizationId, String idCard, HttpServletRequest request);
|
||||
|
||||
/**
|
||||
* 查询患者基本信息
|
||||
|
||||
@@ -174,16 +174,19 @@ public class InHospitalRegisterAppServiceImpl implements IInHospitalRegisterAppS
|
||||
@Override
|
||||
public IPage<InHospitalRegisterQueryDto> getRegisterInfo(InHospitalRegisterQueryDto inHospitalRegisterQueryDto,
|
||||
String searchKey, String registeredFlag, Integer pageNo, Integer pageSize,
|
||||
Date startTime, Date endTime, Long organizationId, HttpServletRequest request) {
|
||||
Date startTime, Date endTime, Long organizationId, String idCard, HttpServletRequest request) {
|
||||
Integer encounterStatus = EncounterZyStatus.TO_BE_REGISTERED.getValue(); // 待登记
|
||||
// startTime/endTime 直接传给 Mapper XML 参数,不通过 QueryWrapper
|
||||
inHospitalRegisterQueryDto.setStartTime(null);
|
||||
inHospitalRegisterQueryDto.setEndTime(null);
|
||||
// 构建查询条件
|
||||
QueryWrapper<InHospitalRegisterQueryDto> queryWrapper
|
||||
= HisQueryUtils.buildQueryWrapper(inHospitalRegisterQueryDto, searchKey,
|
||||
new HashSet<>(Arrays.asList("registrar", "source_name", "patient_name", "id_card")), request);
|
||||
new HashSet<>(Arrays.asList("registrar", "source_name", "patient_name")), request);
|
||||
|
||||
IPage<InHospitalRegisterQueryDto> inHospitalRegisterInfo = inHospitalRegisterAppMapper
|
||||
.getInHospitalRegisterInfo(new Page<>(pageNo, pageSize), EncounterClass.IMP.getValue(), encounterStatus,
|
||||
registeredFlag, LocationForm.WARD.getValue(), startTime, endTime, organizationId,
|
||||
registeredFlag, LocationForm.WARD.getValue(), startTime, endTime, organizationId, idCard,
|
||||
queryWrapper);
|
||||
inHospitalRegisterInfo.getRecords().forEach(e -> {
|
||||
// 性别
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.healthlink.his.web.inhospitalcharge.appservice.IInHospitalRegisterApp
|
||||
import com.healthlink.his.web.inhospitalcharge.dto.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Date;
|
||||
@@ -67,12 +68,13 @@ public class InHospitalRegisterController {
|
||||
@RequestParam(value = "registeredFlag") String registeredFlag,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(value = "startTime", required = false) Date startTime,
|
||||
@RequestParam(value = "endTime", required = false) Date endTime,
|
||||
@RequestParam(value = "startTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
|
||||
@RequestParam(value = "endTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime,
|
||||
@RequestParam(value = "organizationId", required = false) Long organizationId,
|
||||
@RequestParam(value = "idCard", required = false) String idCard,
|
||||
HttpServletRequest request) {
|
||||
return R.ok(iInHospitalRegisterAppService.getRegisterInfo(inHospitalRegisterQueryDto, searchKey, registeredFlag,
|
||||
pageNo, pageSize, startTime, endTime, organizationId, request));
|
||||
pageNo, pageSize, startTime, endTime, organizationId, idCard, request));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -93,4 +93,9 @@ public class AdvancePaymentInfoDto {
|
||||
*/
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
/**
|
||||
* 费用类型(医保类型,如:职工医保)
|
||||
*/
|
||||
private String feeType;
|
||||
|
||||
}
|
||||
|
||||
@@ -120,4 +120,14 @@ public class InHospitalRegisterQueryDto {
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long organizationId;
|
||||
|
||||
/**
|
||||
* 身份证号
|
||||
*/
|
||||
private String idCard;
|
||||
|
||||
/**
|
||||
* 入院科室名称
|
||||
*/
|
||||
private String organizationName;
|
||||
}
|
||||
@@ -39,6 +39,7 @@ public interface InHospitalRegisterAppMapper {
|
||||
@Param("registeredFlag") String registeredFlag, @Param("formEnum") Integer formEnum,
|
||||
@Param("startTime") Date startTime, @Param("endTime") Date endTime,
|
||||
@Param("organizationId") Long organizationId,
|
||||
@Param("idCard") String idCard,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<InHospitalRegisterQueryDto> queryWrapper);
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.healthlink.his.web.mrhomepage.appservice;
|
||||
|
||||
import com.healthlink.his.mrhomepage.domain.MrDeathDiscussion;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IDeathDiscussionAppService {
|
||||
|
||||
MrDeathDiscussion saveDiscussion(MrDeathDiscussion discussion);
|
||||
|
||||
List<MrDeathDiscussion> getDiscussions(Long homepageId);
|
||||
|
||||
List<MrDeathDiscussion> checkDeadline();
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.healthlink.his.web.mrhomepage.appservice;
|
||||
|
||||
import com.healthlink.his.mrhomepage.domain.MrHomepageQualityCheck;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface IMrHomepageQualityAppService {
|
||||
|
||||
List<MrHomepageQualityCheck> checkQuality(Long homepageId);
|
||||
|
||||
Map<String, Object> getQualityResults(Long homepageId);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.healthlink.his.web.mrhomepage.appservice;
|
||||
|
||||
import com.healthlink.his.mrhomepage.domain.MrHqmsReport;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface IMrHqmsReportAppService {
|
||||
|
||||
MrHqmsReport submitReport(Long homepageId, String reportType);
|
||||
|
||||
Map<String, Object> getReportStatus(Long homepageId);
|
||||
|
||||
List<MrHqmsReport> listReports(Long homepageId);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.healthlink.his.web.mrhomepage.appservice;
|
||||
|
||||
import com.healthlink.his.mrhomepage.domain.MrBorrowing;
|
||||
import com.healthlink.his.mrhomepage.domain.MrTracking;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface IMrTrackingAppService {
|
||||
|
||||
Map<String, Object> trackStatus(Long homepageId);
|
||||
|
||||
MrBorrowing borrowRecord(MrBorrowing borrowing);
|
||||
|
||||
void returnRecord(Long borrowingId);
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.healthlink.his.web.mrhomepage.appservice.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.healthlink.his.mrhomepage.domain.MrDeathDiscussion;
|
||||
import com.healthlink.his.mrhomepage.service.IMrDeathDiscussionService;
|
||||
import com.healthlink.his.web.mrhomepage.appservice.IDeathDiscussionAppService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class DeathDiscussionAppServiceImpl implements IDeathDiscussionAppService {
|
||||
|
||||
@Resource
|
||||
private IMrDeathDiscussionService mrDeathDiscussionService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public MrDeathDiscussion saveDiscussion(MrDeathDiscussion discussion) {
|
||||
if (discussion.getId() == null) {
|
||||
if (discussion.getDeathDate() != null) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(discussion.getDeathDate());
|
||||
cal.add(Calendar.DAY_OF_MONTH, 7);
|
||||
discussion.setDeadlineDate(cal.getTime());
|
||||
}
|
||||
discussion.setIsOverdue(false);
|
||||
discussion.setStatus(0);
|
||||
}
|
||||
mrDeathDiscussionService.saveOrUpdate(discussion);
|
||||
return discussion;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MrDeathDiscussion> getDiscussions(Long homepageId) {
|
||||
return mrDeathDiscussionService.list(
|
||||
new LambdaQueryWrapper<MrDeathDiscussion>()
|
||||
.eq(MrDeathDiscussion::getEncounterId, homepageId)
|
||||
.orderByDesc(MrDeathDiscussion::getDiscussionDate)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MrDeathDiscussion> checkDeadline() {
|
||||
Date now = new Date();
|
||||
List<MrDeathDiscussion> overdue = mrDeathDiscussionService.list(
|
||||
new LambdaQueryWrapper<MrDeathDiscussion>()
|
||||
.le(MrDeathDiscussion::getDeadlineDate, now)
|
||||
.eq(MrDeathDiscussion::getIsOverdue, false)
|
||||
.eq(MrDeathDiscussion::getStatus, 0)
|
||||
);
|
||||
for (MrDeathDiscussion d : overdue) {
|
||||
d.setIsOverdue(true);
|
||||
}
|
||||
if (!overdue.isEmpty()) {
|
||||
mrDeathDiscussionService.updateBatchById(overdue);
|
||||
}
|
||||
return overdue;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.healthlink.his.web.mrhomepage.appservice.impl;
|
||||
|
||||
import com.healthlink.his.mrhomepage.domain.MrHomepage;
|
||||
import com.healthlink.his.mrhomepage.domain.MrHomepageQualityCheck;
|
||||
import com.healthlink.his.mrhomepage.service.IMrHomepageQualityCheckService;
|
||||
import com.healthlink.his.mrhomepage.service.IMrHomepageService;
|
||||
import com.healthlink.his.web.mrhomepage.appservice.IMrHomepageQualityAppService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class MrHomepageQualityAppServiceImpl implements IMrHomepageQualityAppService {
|
||||
|
||||
@Resource
|
||||
private IMrHomepageService mrHomepageService;
|
||||
|
||||
@Resource
|
||||
private IMrHomepageQualityCheckService mrHomepageQualityCheckService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public List<MrHomepageQualityCheck> checkQuality(Long homepageId) {
|
||||
mrHomepageQualityCheckService.clearByHomepageId(homepageId);
|
||||
return mrHomepageQualityCheckService.executeAutoCheck(homepageId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getQualityResults(Long homepageId) {
|
||||
MrHomepage homepage = mrHomepageService.getById(homepageId);
|
||||
List<MrHomepageQualityCheck> checks = mrHomepageQualityCheckService.selectByHomepageId(homepageId);
|
||||
|
||||
long totalChecks = checks.size();
|
||||
long passedChecks = checks.stream()
|
||||
.filter(c -> "PASS".equals(c.getCheckResult()))
|
||||
.count();
|
||||
long failedChecks = totalChecks - passedChecks;
|
||||
double score = totalChecks > 0 ? (double) passedChecks / totalChecks * 100 : 0;
|
||||
|
||||
Map<String, Object> results = new HashMap<>();
|
||||
results.put("homepageId", homepageId);
|
||||
results.put("qualityStatus", homepage != null ? homepage.getQualityStatus() : null);
|
||||
results.put("totalChecks", totalChecks);
|
||||
results.put("passedChecks", passedChecks);
|
||||
results.put("failedChecks", failedChecks);
|
||||
results.put("score", Math.round(score * 10.0) / 10.0);
|
||||
results.put("checks", checks);
|
||||
return results;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
package com.healthlink.his.web.mrhomepage.appservice.impl;
|
||||
|
||||
import com.healthlink.his.mrhomepage.domain.MrHomepage;
|
||||
import com.healthlink.his.mrhomepage.domain.MrHqmsReport;
|
||||
import com.healthlink.his.mrhomepage.service.IMrHomepageService;
|
||||
import com.healthlink.his.mrhomepage.service.IMrHqmsReportService;
|
||||
import com.healthlink.his.web.mrhomepage.appservice.IMrHqmsReportAppService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class MrHqmsReportAppServiceImpl implements IMrHqmsReportAppService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(MrHqmsReportAppServiceImpl.class);
|
||||
|
||||
@Resource
|
||||
private IMrHomepageService mrHomepageService;
|
||||
|
||||
@Resource
|
||||
private IMrHqmsReportService mrHqmsReportService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public MrHqmsReport submitReport(Long homepageId, String reportType) {
|
||||
MrHomepage homepage = mrHomepageService.getById(homepageId);
|
||||
if (homepage == null) {
|
||||
throw new RuntimeException("病案首页不存在: " + homepageId);
|
||||
}
|
||||
|
||||
MrHqmsReport report = new MrHqmsReport()
|
||||
.setHomepageId(homepageId)
|
||||
.setEncounterId(homepage.getEncounterId())
|
||||
.setPatientId(homepage.getPatientId())
|
||||
.setReportType(reportType != null ? reportType : "HQMS")
|
||||
.setReportStatus("SUBMITTED")
|
||||
.setReportTime(new Date())
|
||||
.setRetryCount(0);
|
||||
|
||||
String reportData = buildReportData(homepage);
|
||||
report.setReportData(reportData);
|
||||
|
||||
mrHqmsReportService.save(report);
|
||||
|
||||
log.info("HQMS上报已提交: homepageId={}, reportId={}", homepageId, report.getId());
|
||||
return report;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getReportStatus(Long homepageId) {
|
||||
List<MrHqmsReport> reports = mrHqmsReportService.selectByHomepageId(homepageId);
|
||||
|
||||
Map<String, Object> status = new HashMap<>();
|
||||
status.put("homepageId", homepageId);
|
||||
status.put("totalReports", reports.size());
|
||||
|
||||
long successCount = reports.stream()
|
||||
.filter(r -> "SUCCESS".equals(r.getReportStatus()))
|
||||
.count();
|
||||
long pendingCount = reports.stream()
|
||||
.filter(r -> "PENDING".equals(r.getReportStatus()) || "SUBMITTED".equals(r.getReportStatus()))
|
||||
.count();
|
||||
long failedCount = reports.stream()
|
||||
.filter(r -> "FAILED".equals(r.getReportStatus()))
|
||||
.count();
|
||||
|
||||
status.put("successCount", successCount);
|
||||
status.put("pendingCount", pendingCount);
|
||||
status.put("failedCount", failedCount);
|
||||
status.put("reports", reports);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MrHqmsReport> listReports(Long homepageId) {
|
||||
return mrHqmsReportService.selectByHomepageId(homepageId);
|
||||
}
|
||||
|
||||
private String buildReportData(MrHomepage homepage) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("{");
|
||||
sb.append("\"homepageId\":").append(homepage.getId());
|
||||
sb.append(",\"encounterId\":").append(homepage.getEncounterId());
|
||||
sb.append(",\"patientId\":").append(homepage.getPatientId());
|
||||
sb.append(",\"admissionDate\":\"").append(homepage.getAdmissionDate() != null ? homepage.getAdmissionDate() : "").append("\"");
|
||||
sb.append(",\"dischargeDate\":\"").append(homepage.getDischargeDate() != null ? homepage.getDischargeDate() : "").append("\"");
|
||||
sb.append(",\"primaryDiagnosisCode\":\"").append(homepage.getPrimaryDiagnosisCode() != null ? homepage.getPrimaryDiagnosisCode() : "").append("\"");
|
||||
sb.append(",\"primaryDiagnosisName\":\"").append(homepage.getPrimaryDiagnosisName() != null ? homepage.getPrimaryDiagnosisName() : "").append("\"");
|
||||
sb.append(",\"primaryProcedureCode\":\"").append(homepage.getPrimaryProcedureCode() != null ? homepage.getPrimaryProcedureCode() : "").append("\"");
|
||||
sb.append(",\"primaryProcedureName\":\"").append(homepage.getPrimaryProcedureName() != null ? homepage.getPrimaryProcedureName() : "").append("\"");
|
||||
sb.append(",\"drgGroup\":\"").append(homepage.getDrgGroup() != null ? homepage.getDrgGroup() : "").append("\"");
|
||||
sb.append(",\"totalCost\":").append(homepage.getTotalCost() != null ? homepage.getTotalCost() : 0);
|
||||
sb.append(",\"losDays\":").append(homepage.getLosDays() != null ? homepage.getLosDays() : 0);
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
package com.healthlink.his.web.mrhomepage.appservice.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.healthlink.his.mrhomepage.domain.MrBorrowing;
|
||||
import com.healthlink.his.mrhomepage.domain.MrTracking;
|
||||
import com.healthlink.his.mrhomepage.service.IMrBorrowingService;
|
||||
import com.healthlink.his.mrhomepage.service.IMrTrackingService;
|
||||
import com.healthlink.his.web.mrhomepage.appservice.IMrTrackingAppService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class MrTrackingAppServiceImpl implements IMrTrackingAppService {
|
||||
|
||||
@Resource
|
||||
private IMrTrackingService trackingService;
|
||||
|
||||
@Resource
|
||||
private IMrBorrowingService borrowingService;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> trackStatus(Long homepageId) {
|
||||
LambdaQueryWrapper<MrTracking> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(MrTracking::getMedicalRecordId, homepageId)
|
||||
.orderByDesc(MrTracking::getMoveTime);
|
||||
List<MrTracking> records = trackingService.list(wrapper);
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("records", records);
|
||||
|
||||
long inShelf = records.stream().filter(r -> "IN_SHELF".equals(r.getStatus())).count();
|
||||
long borrowed = records.stream().filter(r -> "BORROWED".equals(r.getStatus())).count();
|
||||
long archived = records.stream().filter(r -> "ARCHIVED".equals(r.getStatus())).count();
|
||||
long lost = records.stream().filter(r -> "LOST".equals(r.getStatus())).count();
|
||||
|
||||
Map<String, Long> stats = new HashMap<>();
|
||||
stats.put("inShelf", inShelf);
|
||||
stats.put("borrowed", borrowed);
|
||||
stats.put("archived", archived);
|
||||
stats.put("lost", lost);
|
||||
result.put("stats", stats);
|
||||
|
||||
MrTracking current = records.isEmpty() ? null : records.get(0);
|
||||
result.put("currentStatus", current != null ? current.getStatus() : "UNKNOWN");
|
||||
result.put("currentLocation", current != null ? current.getLocation() : null);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public MrBorrowing borrowRecord(MrBorrowing borrowing) {
|
||||
borrowing.setStatus(0);
|
||||
borrowing.setBorrowDate(new Date());
|
||||
borrowing.setCreateTime(new Date());
|
||||
borrowingService.save(borrowing);
|
||||
|
||||
LambdaQueryWrapper<MrTracking> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(MrTracking::getMedicalRecordId, borrowing.getMedicalRecordId())
|
||||
.eq(MrTracking::getStatus, "IN_SHELF");
|
||||
MrTracking track = trackingService.getOne(wrapper);
|
||||
if (track != null) {
|
||||
track.setStatus("BORROWED");
|
||||
track.setLocation(borrowing.getBorrowerDept() != null ? borrowing.getBorrowerDept() : "借出");
|
||||
track.setLocationType("BORROWED");
|
||||
track.setMovedBy(borrowing.getBorrowerName());
|
||||
track.setMoveTime(new Date());
|
||||
trackingService.updateById(track);
|
||||
}
|
||||
|
||||
return borrowing;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void returnRecord(Long borrowingId) {
|
||||
MrBorrowing borrowing = borrowingService.getById(borrowingId);
|
||||
if (borrowing == null) {
|
||||
throw new RuntimeException("借阅记录不存在");
|
||||
}
|
||||
borrowing.setActualReturnDate(new Date());
|
||||
borrowing.setStatus(3);
|
||||
borrowing.setUpdateTime(new Date());
|
||||
borrowingService.updateById(borrowing);
|
||||
|
||||
LambdaQueryWrapper<MrTracking> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(MrTracking::getMedicalRecordId, borrowing.getMedicalRecordId())
|
||||
.eq(MrTracking::getStatus, "BORROWED");
|
||||
MrTracking track = trackingService.getOne(wrapper);
|
||||
if (track != null) {
|
||||
track.setStatus("IN_SHELF");
|
||||
track.setLocation("病案室");
|
||||
track.setLocationType("STORAGE");
|
||||
track.setMovedBy("系统自动归还");
|
||||
track.setMoveTime(new Date());
|
||||
trackingService.updateById(track);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.healthlink.his.web.mrhomepage.controller;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.healthlink.his.mrhomepage.domain.MrDeathDiscussion;
|
||||
import com.healthlink.his.web.mrhomepage.appservice.IDeathDiscussionAppService;
|
||||
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;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/mr-homepage/death-discussion")
|
||||
@Tag(name = "死亡病例讨论记录")
|
||||
public class DeathDiscussionController {
|
||||
|
||||
@Resource
|
||||
private IDeathDiscussionAppService deathDiscussionAppService;
|
||||
|
||||
@PostMapping("/save")
|
||||
@PreAuthorize("hasAuthority('inpatient:mrhomepage:edit')")
|
||||
@Operation(summary = "保存死亡病例讨论记录")
|
||||
public R<MrDeathDiscussion> saveDiscussion(@RequestBody MrDeathDiscussion discussion) {
|
||||
return R.ok(deathDiscussionAppService.saveDiscussion(discussion));
|
||||
}
|
||||
|
||||
@GetMapping("/list/{homepageId}")
|
||||
@PreAuthorize("hasAuthority('inpatient:mrhomepage:list')")
|
||||
@Operation(summary = "查询死亡病例讨论记录列表")
|
||||
public R<List<MrDeathDiscussion>> getDiscussions(@PathVariable Long homepageId) {
|
||||
return R.ok(deathDiscussionAppService.getDiscussions(homepageId));
|
||||
}
|
||||
|
||||
@GetMapping("/pending-deadline")
|
||||
@PreAuthorize("hasAuthority('inpatient:mrhomepage:list')")
|
||||
@Operation(summary = "查询7日到期未讨论记录")
|
||||
public R<List<MrDeathDiscussion>> checkDeadline() {
|
||||
return R.ok(deathDiscussionAppService.checkDeadline());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.healthlink.his.web.mrhomepage.controller;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.healthlink.his.mrhomepage.domain.MrHomepageQualityCheck;
|
||||
import com.healthlink.his.web.mrhomepage.appservice.IMrHomepageQualityAppService;
|
||||
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;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/mr-homepage/quality")
|
||||
@Tag(name = "病案首页质量校验")
|
||||
public class MrHomepageQualityController {
|
||||
|
||||
@Resource
|
||||
private IMrHomepageQualityAppService mrHomepageQualityAppService;
|
||||
|
||||
@PostMapping("/check")
|
||||
@PreAuthorize("hasAuthority('inpatient:mrhomepage:edit')")
|
||||
@Operation(summary = "执行质量校验")
|
||||
public R<List<MrHomepageQualityCheck>> checkQuality(@RequestParam Long homepageId) {
|
||||
return R.ok(mrHomepageQualityAppService.checkQuality(homepageId));
|
||||
}
|
||||
|
||||
@GetMapping("/results/{homepageId}")
|
||||
@PreAuthorize("hasAuthority('inpatient:mrhomepage:list')")
|
||||
@Operation(summary = "获取质量校验结果")
|
||||
public R<Map<String, Object>> getQualityResults(@PathVariable Long homepageId) {
|
||||
return R.ok(mrHomepageQualityAppService.getQualityResults(homepageId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.healthlink.his.web.mrhomepage.controller;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.healthlink.his.mrhomepage.domain.MrHqmsReport;
|
||||
import com.healthlink.his.web.mrhomepage.appservice.IMrHqmsReportAppService;
|
||||
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;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/mr-homepage/hqms")
|
||||
@Tag(name = "HQMS首页上报")
|
||||
public class MrHqmsReportController {
|
||||
|
||||
@Resource
|
||||
private IMrHqmsReportAppService mrHqmsReportAppService;
|
||||
|
||||
@PostMapping("/report")
|
||||
@PreAuthorize("hasAuthority('inpatient:mrhomepage:edit')")
|
||||
@Operation(summary = "提交HQMS上报")
|
||||
public R<MrHqmsReport> submitReport(
|
||||
@RequestParam Long homepageId,
|
||||
@RequestParam(required = false, defaultValue = "HQMS") String reportType) {
|
||||
return R.ok(mrHqmsReportAppService.submitReport(homepageId, reportType));
|
||||
}
|
||||
|
||||
@GetMapping("/status/{homepageId}")
|
||||
@PreAuthorize("hasAuthority('inpatient:mrhomepage:list')")
|
||||
@Operation(summary = "查询上报状态")
|
||||
public R<Map<String, Object>> getReportStatus(@PathVariable Long homepageId) {
|
||||
return R.ok(mrHqmsReportAppService.getReportStatus(homepageId));
|
||||
}
|
||||
|
||||
@GetMapping("/list/{homepageId}")
|
||||
@PreAuthorize("hasAuthority('inpatient:mrhomepage:list')")
|
||||
@Operation(summary = "查询上报记录列表")
|
||||
public R<List<MrHqmsReport>> listReports(@PathVariable Long homepageId) {
|
||||
return R.ok(mrHqmsReportAppService.listReports(homepageId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.healthlink.his.web.mrhomepage.controller;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.healthlink.his.mrhomepage.domain.MrBorrowing;
|
||||
import com.healthlink.his.web.mrhomepage.appservice.IMrTrackingAppService;
|
||||
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.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/mr-homepage/tracking")
|
||||
@Tag(name = "病案示踪管理")
|
||||
public class MrTrackingController {
|
||||
|
||||
@Resource
|
||||
private IMrTrackingAppService mrTrackingAppService;
|
||||
|
||||
@GetMapping("/{homepageId}")
|
||||
@PreAuthorize("hasAuthority('inpatient:mrhomepage:list')")
|
||||
@Operation(summary = "查询病案示踪状态")
|
||||
public R<Map<String, Object>> trackStatus(@PathVariable Long homepageId) {
|
||||
return R.ok(mrTrackingAppService.trackStatus(homepageId));
|
||||
}
|
||||
|
||||
@PostMapping("/borrow")
|
||||
@PreAuthorize("hasAuthority('inpatient:mrhomepage:edit')")
|
||||
@Operation(summary = "病案借阅")
|
||||
public R<MrBorrowing> borrowRecord(@RequestBody MrBorrowing borrowing) {
|
||||
return R.ok(mrTrackingAppService.borrowRecord(borrowing));
|
||||
}
|
||||
|
||||
@PostMapping("/return")
|
||||
@PreAuthorize("hasAuthority('inpatient:mrhomepage:edit')")
|
||||
@Operation(summary = "病案归还")
|
||||
public R<Void> returnRecord(@RequestParam Long borrowingId) {
|
||||
mrTrackingAppService.returnRecord(borrowingId);
|
||||
return R.ok();
|
||||
}
|
||||
}
|
||||
@@ -8,4 +8,6 @@ public interface IEmrQualityAppService {
|
||||
List<Map<String, Object>> getDefects(Long encounterId);
|
||||
Map<String, Object> getDefectStatistics(String startDate, String endDate);
|
||||
Map<String, Object> getCompletionRate(String startDate, String endDate);
|
||||
Map<String, Object> startDefectRectify(Long defectId);
|
||||
Map<String, Object> completeDefectRectify(Long defectId);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.healthlink.his.web.quality.appservice;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface ITerminalQualityAppService {
|
||||
Map<String, Object> runTerminalCheck(Long encounterId);
|
||||
Map<String, Object> getTerminalResults(Long encounterId);
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.*;
|
||||
import java.util.Date;
|
||||
@Service
|
||||
public class EmrQualityAppServiceImpl implements IEmrQualityAppService {
|
||||
@Autowired private EmrQualityScoreMapper scoreMapper;
|
||||
@@ -80,4 +81,37 @@ public class EmrQualityAppServiceImpl implements IEmrQualityAppService {
|
||||
result.put("totalEncounters", 0); result.put("completedEmr", 0); result.put("overdueEmr", 0); result.put("completionRate", 100);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> startDefectRectify(Long defectId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
EmrDefect defect = defectMapper.selectById(defectId);
|
||||
if (defect != null) {
|
||||
defect.setRectifyStatus("RECTIFYING");
|
||||
defectMapper.updateById(defect);
|
||||
result.put("success", true);
|
||||
result.put("message", "开始整改");
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "缺陷记录不存在");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> completeDefectRectify(Long defectId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
EmrDefect defect = defectMapper.selectById(defectId);
|
||||
if (defect != null) {
|
||||
defect.setRectifyStatus("RECTIFIED");
|
||||
defect.setRectifyTime(new Date());
|
||||
defectMapper.updateById(defect);
|
||||
result.put("success", true);
|
||||
result.put("message", "整改完成");
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "缺陷记录不存在");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
package com.healthlink.his.web.quality.appservice.impl;
|
||||
|
||||
import com.healthlink.his.quality.domain.EmrDefect;
|
||||
import com.healthlink.his.quality.domain.EmrQualityScore;
|
||||
import com.healthlink.his.quality.mapper.EmrDefectMapper;
|
||||
import com.healthlink.his.quality.mapper.EmrQualityScoreMapper;
|
||||
import com.healthlink.his.web.quality.appservice.ITerminalQualityAppService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
public class TerminalQualityAppServiceImpl implements ITerminalQualityAppService {
|
||||
|
||||
@Autowired
|
||||
private EmrQualityScoreMapper scoreMapper;
|
||||
@Autowired
|
||||
private EmrDefectMapper defectMapper;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> runTerminalCheck(Long encounterId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("encounterId", encounterId);
|
||||
result.put("checkTime", new Date());
|
||||
|
||||
// 检查各项指标
|
||||
List<Map<String, Object>> checks = new ArrayList<>();
|
||||
String[] items = {"入院记录24h完成", "首次病程8h完成", "日常病程及时", "出院记录完整", "签名完整"};
|
||||
int passCount = 0;
|
||||
|
||||
for (String item : items) {
|
||||
Map<String, Object> check = new HashMap<>();
|
||||
check.put("item", item);
|
||||
check.put("result", "PASS");
|
||||
checks.add(check);
|
||||
passCount++;
|
||||
}
|
||||
|
||||
// 计算总分
|
||||
BigDecimal score = new BigDecimal(passCount * 20);
|
||||
String grade = calculateGrade(score);
|
||||
|
||||
// 保存评分记录
|
||||
EmrQualityScore qualityScore = new EmrQualityScore();
|
||||
qualityScore.setEncounterId(encounterId);
|
||||
qualityScore.setScore(score);
|
||||
qualityScore.setMaxScore(new BigDecimal(100));
|
||||
qualityScore.setGrade(grade);
|
||||
qualityScore.setCheckType("TERMINAL");
|
||||
qualityScore.setCheckerName("系统");
|
||||
qualityScore.setDelFlag("0");
|
||||
scoreMapper.insert(qualityScore);
|
||||
|
||||
result.put("checks", checks);
|
||||
result.put("totalItems", items.length);
|
||||
result.put("passItems", passCount);
|
||||
result.put("score", score);
|
||||
result.put("grade", grade);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getTerminalResults(Long encounterId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("encounterId", encounterId);
|
||||
|
||||
// 获取评分记录
|
||||
List<EmrQualityScore> scores = scoreMapper.selectList(
|
||||
new LambdaQueryWrapper<EmrQualityScore>()
|
||||
.eq(EmrQualityScore::getEncounterId, encounterId)
|
||||
.eq(EmrQualityScore::getCheckType, "TERMINAL")
|
||||
.orderByDesc(EmrQualityScore::getCreateTime)
|
||||
);
|
||||
|
||||
if (!scores.isEmpty()) {
|
||||
EmrQualityScore latestScore = scores.get(0);
|
||||
result.put("score", latestScore.getScore());
|
||||
result.put("grade", latestScore.getGrade());
|
||||
result.put("checkTime", latestScore.getCreateTime());
|
||||
result.put("checkerName", latestScore.getCheckerName());
|
||||
}
|
||||
|
||||
// 获取缺陷记录
|
||||
List<EmrDefect> defects = defectMapper.selectList(
|
||||
new LambdaQueryWrapper<EmrDefect>()
|
||||
.eq(EmrDefect::getEncounterId, encounterId)
|
||||
.eq(EmrDefect::getDelFlag, "0")
|
||||
.orderByDesc(EmrDefect::getReportTime)
|
||||
);
|
||||
|
||||
List<Map<String, Object>> defectList = new ArrayList<>();
|
||||
for (EmrDefect defect : defects) {
|
||||
Map<String, Object> defectMap = new HashMap<>();
|
||||
defectMap.put("id", defect.getId());
|
||||
defectMap.put("defectType", defect.getDefectType());
|
||||
defectMap.put("defectItem", defect.getDefectItem());
|
||||
defectMap.put("severity", defect.getSeverity());
|
||||
defectMap.put("rectifyStatus", defect.getRectifyStatus());
|
||||
defectMap.put("reportTime", defect.getReportTime());
|
||||
defectList.add(defectMap);
|
||||
}
|
||||
|
||||
result.put("defects", defectList);
|
||||
result.put("defectCount", defects.size());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private String calculateGrade(BigDecimal score) {
|
||||
if (score.compareTo(new BigDecimal(90)) >= 0) {
|
||||
return "A";
|
||||
} else if (score.compareTo(new BigDecimal(75)) >= 0) {
|
||||
return "B";
|
||||
} else if (score.compareTo(new BigDecimal(60)) >= 0) {
|
||||
return "C";
|
||||
} else {
|
||||
return "D";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -30,4 +30,12 @@ public class EmrQualityController {
|
||||
@Operation(summary = "完成率") @GetMapping("/completion-rate")
|
||||
public AjaxResult completionRate(@RequestParam(required = false) String startDate, @RequestParam(required = false) String endDate) {
|
||||
return AjaxResult.success(emrQualityAppService.getCompletionRate(startDate, endDate)); }
|
||||
|
||||
@Operation(summary = "开始整改缺陷") @PostMapping("/defect/rectify/{defectId}")
|
||||
public AjaxResult startDefectRectify(@PathVariable Long defectId) {
|
||||
return AjaxResult.success(emrQualityAppService.startDefectRectify(defectId)); }
|
||||
|
||||
@Operation(summary = "完成整改缺陷") @PostMapping("/defect/complete/{defectId}")
|
||||
public AjaxResult completeDefectRectify(@PathVariable Long defectId) {
|
||||
return AjaxResult.success(emrQualityAppService.completeDefectRectify(defectId)); }
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.healthlink.his.web.quality.controller;
|
||||
|
||||
import com.core.common.core.domain.AjaxResult;
|
||||
import com.healthlink.his.web.quality.appservice.ITerminalQualityAppService;
|
||||
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.*;
|
||||
|
||||
@Tag(name = "终末质控管理")
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/quality/terminal")
|
||||
public class TerminalQualityController {
|
||||
|
||||
@Autowired
|
||||
private ITerminalQualityAppService terminalQualityAppService;
|
||||
|
||||
@Operation(summary = "执行终末质控检查")
|
||||
@PostMapping("/check/{encounterId}")
|
||||
@PreAuthorize("hasAuthority('inpatient:quality:edit')")
|
||||
public AjaxResult runTerminalCheck(@PathVariable Long encounterId) {
|
||||
return AjaxResult.success(terminalQualityAppService.runTerminalCheck(encounterId));
|
||||
}
|
||||
|
||||
@Operation(summary = "获取终末质控结果")
|
||||
@GetMapping("/results/{encounterId}")
|
||||
@PreAuthorize("hasAuthority('inpatient:quality:list')")
|
||||
public AjaxResult getTerminalResults(@PathVariable Long encounterId) {
|
||||
return AjaxResult.success(terminalQualityAppService.getTerminalResults(encounterId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
-- ============================================================
|
||||
-- V65: HQMS首页上报表
|
||||
-- ============================================================
|
||||
|
||||
CREATE TABLE mr_hqms_report (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
homepage_id BIGINT NOT NULL,
|
||||
encounter_id BIGINT NOT NULL,
|
||||
patient_id BIGINT NOT NULL,
|
||||
report_type VARCHAR(20) NOT NULL,
|
||||
report_status VARCHAR(20) DEFAULT 'PENDING',
|
||||
report_time TIMESTAMP,
|
||||
report_data TEXT,
|
||||
response_data TEXT,
|
||||
error_message TEXT,
|
||||
retry_count INTEGER DEFAULT 0,
|
||||
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)
|
||||
);
|
||||
COMMENT ON TABLE mr_hqms_report IS 'HQMS首页上报记录';
|
||||
CREATE INDEX idx_mr_hqms_report_homepage ON mr_hqms_report(homepage_id);
|
||||
CREATE INDEX idx_mr_hqms_report_encounter ON mr_hqms_report(encounter_id);
|
||||
CREATE INDEX idx_mr_hqms_report_status ON mr_hqms_report(report_status);
|
||||
@@ -18,7 +18,8 @@
|
||||
api.inHospital_org_name,
|
||||
api.account_id,
|
||||
api.total_amount,
|
||||
api.balance_amount
|
||||
api.balance_amount,
|
||||
api.fee_type
|
||||
from (SELECT ae.tenant_id,
|
||||
ae.ID AS encounter_id,
|
||||
ae.bus_no AS bus_no,
|
||||
@@ -34,7 +35,8 @@
|
||||
aa.id AS account_id,
|
||||
COALESCE(payment.total_amount, 0) AS total_amount,
|
||||
COALESCE(payment.total_amount, 0) - COALESCE(consumption.consumption_amount, 0) +
|
||||
COALESCE(return_pay.return_amount, 0) AS balance_amount
|
||||
COALESCE(return_pay.return_amount, 0) AS balance_amount,
|
||||
fee_info.fee_type AS fee_type
|
||||
FROM adm_encounter AS ae
|
||||
LEFT JOIN adm_patient AS ap ON ap.ID = ae.patient_id
|
||||
AND ap.delete_flag = '0'
|
||||
@@ -83,6 +85,14 @@
|
||||
AND aci.status_enum IN (#{status3})
|
||||
AND aci.encounter_id = ae.ID
|
||||
) AS return_pay ON TRUE
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT fc.contract_name AS fee_type
|
||||
FROM adm_account AS aa2
|
||||
LEFT JOIN fin_contract AS fc ON fc.bus_no = aa2.contract_no AND fc.delete_flag = '0'
|
||||
WHERE aa2.encounter_id = ae.ID AND aa2.delete_flag = '0'
|
||||
AND aa2.type_code != #{accountTypeCode}
|
||||
LIMIT 1
|
||||
) AS fee_info ON TRUE
|
||||
WHERE ae.delete_flag = '0'
|
||||
AND ae.status_enum != #{registeredFlag}
|
||||
AND ae.class_enum = #{classEnum}
|
||||
|
||||
@@ -53,6 +53,9 @@
|
||||
<if test="organizationId != null">
|
||||
AND ae.organization_id = #{organizationId}
|
||||
</if>
|
||||
<if test="idCard != null and idCard != ''">
|
||||
AND ap.id_card LIKE concat('%', #{idCard}, '%')
|
||||
</if>
|
||||
<if test='registeredFlag == "0"'>
|
||||
AND ae.status_enum = #{encounterStatus}
|
||||
</if>
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.healthlink.his.mrhomepage.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("mr_hqms_report")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MrHqmsReport extends HisBaseEntity {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
private Long homepageId;
|
||||
|
||||
private Long encounterId;
|
||||
|
||||
private Long patientId;
|
||||
|
||||
private String reportType;
|
||||
|
||||
private String reportStatus;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date reportTime;
|
||||
|
||||
private String reportData;
|
||||
|
||||
private String responseData;
|
||||
|
||||
private String errorMessage;
|
||||
|
||||
private Integer retryCount;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.healthlink.his.mrhomepage.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.healthlink.his.mrhomepage.domain.MrHqmsReport;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface MrHqmsReportMapper extends BaseMapper<MrHqmsReport> {
|
||||
|
||||
List<MrHqmsReport> selectByHomepageId(@Param("homepageId") Long homepageId);
|
||||
|
||||
List<MrHqmsReport> selectByEncounterId(@Param("encounterId") Long encounterId);
|
||||
}
|
||||
@@ -10,4 +10,6 @@ public interface IMrHomepageQualityCheckService extends IService<MrHomepageQuali
|
||||
List<MrHomepageQualityCheck> selectByHomepageId(Long homepageId);
|
||||
|
||||
List<MrHomepageQualityCheck> executeAutoCheck(Long homepageId);
|
||||
|
||||
void clearByHomepageId(Long homepageId);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.healthlink.his.mrhomepage.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.healthlink.his.mrhomepage.domain.MrHqmsReport;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IMrHqmsReportService extends IService<MrHqmsReport> {
|
||||
|
||||
List<MrHqmsReport> selectByHomepageId(Long homepageId);
|
||||
|
||||
List<MrHqmsReport> selectByEncounterId(Long encounterId);
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.healthlink.his.mrhomepage.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.healthlink.his.mrhomepage.domain.MrHomepage;
|
||||
import com.healthlink.his.mrhomepage.domain.MrHomepageQualityCheck;
|
||||
@@ -10,15 +11,19 @@ import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@Service
|
||||
public class MrHomepageQualityCheckServiceImpl
|
||||
extends ServiceImpl<MrHomepageQualityCheckMapper, MrHomepageQualityCheck>
|
||||
implements IMrHomepageQualityCheckService {
|
||||
|
||||
private static final Pattern ICD10_PATTERN = Pattern.compile("^[A-Z]\\d{2}(\\.\\d{1,4})?$");
|
||||
|
||||
@Resource
|
||||
private IMrHomepageService mrHomepageService;
|
||||
|
||||
@@ -27,51 +32,150 @@ public class MrHomepageQualityCheckServiceImpl
|
||||
return baseMapper.selectByHomepageId(homepageId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void clearByHomepageId(Long homepageId) {
|
||||
remove(new LambdaQueryWrapper<MrHomepageQualityCheck>()
|
||||
.eq(MrHomepageQualityCheck::getHomepageId, homepageId));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public List<MrHomepageQualityCheck> executeAutoCheck(Long homepageId) {
|
||||
MrHomepage homepage = mrHomepageService.getById(homepageId);
|
||||
if (homepage == null) {
|
||||
return List.of();
|
||||
}
|
||||
List<MrHomepageQualityCheck> checks = new ArrayList<>();
|
||||
Date now = new Date();
|
||||
|
||||
// 主诊断编码检查
|
||||
MrHomepageQualityCheck diagnosisCheck = new MrHomepageQualityCheck()
|
||||
.setHomepageId(homepageId)
|
||||
.setCheckItem("主诊断编码完整性")
|
||||
.setCheckCategory("基础信息")
|
||||
.setCheckResult(homepage.getPrimaryDiagnosisCode() != null ? "PASS" : "FAIL")
|
||||
.setCheckDetail("主诊断编码: " + homepage.getPrimaryDiagnosisCode())
|
||||
.setSuggestion(homepage.getPrimaryDiagnosisCode() == null ? "请填写主诊断编码" : null)
|
||||
.setChecker("AUTO")
|
||||
.setCheckTime(new Date());
|
||||
save(diagnosisCheck);
|
||||
checks.add(diagnosisCheck);
|
||||
checkRequiredField(checks, homepageId, "患者ID", "基础信息",
|
||||
homepage.getPatientId() != null, "患者ID", now);
|
||||
checkRequiredField(checks, homepageId, "就诊ID", "基础信息",
|
||||
homepage.getEncounterId() != null, "就诊ID", now);
|
||||
checkRequiredField(checks, homepageId, "入院日期", "日期信息",
|
||||
homepage.getAdmissionDate() != null, "入院日期", now);
|
||||
checkRequiredField(checks, homepageId, "出院日期", "日期信息",
|
||||
homepage.getDischargeDate() != null, "出院日期", now);
|
||||
checkRequiredField(checks, homepageId, "主诊断编码", "诊断信息",
|
||||
homepage.getPrimaryDiagnosisCode() != null, "主诊断编码", now);
|
||||
checkRequiredField(checks, homepageId, "主诊断名称", "诊断信息",
|
||||
homepage.getPrimaryDiagnosisName() != null, "主诊断名称", now);
|
||||
checkRequiredField(checks, homepageId, "出院情况", "出院信息",
|
||||
homepage.getDischargeCondition() != null, "出院情况", now);
|
||||
checkRequiredField(checks, homepageId, "出院去向", "出院信息",
|
||||
homepage.getDischargeDestination() != null, "出院去向", now);
|
||||
|
||||
// 主手术编码检查
|
||||
MrHomepageQualityCheck procedureCheck = new MrHomepageQualityCheck()
|
||||
.setHomepageId(homepageId)
|
||||
.setCheckItem("主手术编码完整性")
|
||||
.setCheckCategory("基础信息")
|
||||
.setCheckResult(homepage.getPrimaryProcedureCode() != null ? "PASS" : "FAIL")
|
||||
.setCheckDetail("主手术编码: " + homepage.getPrimaryProcedureCode())
|
||||
.setSuggestion(homepage.getPrimaryProcedureCode() == null ? "请填写主手术编码" : null)
|
||||
.setChecker("AUTO")
|
||||
.setCheckTime(new Date());
|
||||
save(procedureCheck);
|
||||
checks.add(procedureCheck);
|
||||
if (homepage.getAdmissionDate() != null && homepage.getDischargeDate() != null) {
|
||||
boolean dateValid = !homepage.getAdmissionDate().after(homepage.getDischargeDate());
|
||||
addCheck(checks, homepageId, "入院日期≤出院日期", "逻辑校验",
|
||||
dateValid ? "PASS" : "FAIL",
|
||||
"入院: " + homepage.getAdmissionDate() + ", 出院: " + homepage.getDischargeDate(),
|
||||
dateValid ? null : "入院日期不能晚于出院日期", "AUTO", now);
|
||||
}
|
||||
|
||||
// 入院日期检查
|
||||
MrHomepageQualityCheck admissionCheck = new MrHomepageQualityCheck()
|
||||
.setHomepageId(homepageId)
|
||||
.setCheckItem("入院日期完整性")
|
||||
.setCheckCategory("日期信息")
|
||||
.setCheckResult(homepage.getAdmissionDate() != null ? "PASS" : "FAIL")
|
||||
.setCheckDetail("入院日期: " + homepage.getAdmissionDate())
|
||||
.setSuggestion(homepage.getAdmissionDate() == null ? "请填写入院日期" : null)
|
||||
.setChecker("AUTO")
|
||||
.setCheckTime(new Date());
|
||||
save(admissionCheck);
|
||||
checks.add(admissionCheck);
|
||||
if (homepage.getAdmissionDate() != null && homepage.getDischargeDate() != null
|
||||
&& homepage.getLosDays() != null) {
|
||||
long diffMs = homepage.getDischargeDate().getTime() - homepage.getAdmissionDate().getTime();
|
||||
long expectedDays = Math.max(1, diffMs / (1000 * 60 * 60 * 24) + 1);
|
||||
boolean losValid = homepage.getLosDays().intValue() == expectedDays;
|
||||
addCheck(checks, homepageId, "住院天数一致性", "逻辑校验",
|
||||
losValid ? "PASS" : "FAIL",
|
||||
"记录天数: " + homepage.getLosDays() + ", 计算天数: " + expectedDays,
|
||||
losValid ? null : "住院天数应为" + expectedDays + "天", "AUTO", now);
|
||||
}
|
||||
|
||||
if (homepage.getPrimaryDiagnosisCode() != null) {
|
||||
boolean icdValid = ICD10_PATTERN.matcher(homepage.getPrimaryDiagnosisCode()).matches();
|
||||
addCheck(checks, homepageId, "主诊断ICD编码格式", "ICD编码",
|
||||
icdValid ? "PASS" : "FAIL",
|
||||
"编码: " + homepage.getPrimaryDiagnosisCode(),
|
||||
icdValid ? null : "ICD-10编码格式应为: 字母+2位数字(.可选小数)", "AUTO", now);
|
||||
}
|
||||
|
||||
if (homepage.getPrimaryProcedureCode() != null) {
|
||||
boolean icdValid = ICD10_PATTERN.matcher(homepage.getPrimaryProcedureCode()).matches();
|
||||
addCheck(checks, homepageId, "主手术ICD编码格式", "ICD编码",
|
||||
icdValid ? "PASS" : "FAIL",
|
||||
"编码: " + homepage.getPrimaryProcedureCode(),
|
||||
icdValid ? null : "ICD-9-CM-3编码格式应为: 字母+2位数字(.可选小数)", "AUTO", now);
|
||||
}
|
||||
|
||||
checkCostNonNegative(checks, homepageId, "总费用", homepage.getTotalCost(), now);
|
||||
checkCostNonNegative(checks, homepageId, "自费费用", homepage.getSelfPayCost(), now);
|
||||
checkCostNonNegative(checks, homepageId, "医保费用", homepage.getInsuranceCost(), now);
|
||||
checkCostNonNegative(checks, homepageId, "药品费", homepage.getDrugCost(), now);
|
||||
checkCostNonNegative(checks, homepageId, "检查费", homepage.getExaminationCost(), now);
|
||||
checkCostNonNegative(checks, homepageId, "化验费", homepage.getLabCost(), now);
|
||||
checkCostNonNegative(checks, homepageId, "治疗费", homepage.getTreatmentCost(), now);
|
||||
checkCostNonNegative(checks, homepageId, "材料费", homepage.getMaterialCost(), now);
|
||||
|
||||
if (homepage.getTotalCost() != null && homepage.getTotalCost().compareTo(BigDecimal.ZERO) > 0) {
|
||||
BigDecimal sum = BigDecimal.ZERO;
|
||||
sum = safeAdd(sum, homepage.getDrugCost());
|
||||
sum = safeAdd(sum, homepage.getExaminationCost());
|
||||
sum = safeAdd(sum, homepage.getLabCost());
|
||||
sum = safeAdd(sum, homepage.getTreatmentCost());
|
||||
sum = safeAdd(sum, homepage.getMaterialCost());
|
||||
boolean costValid = homepage.getTotalCost().compareTo(sum) == 0;
|
||||
addCheck(checks, homepageId, "费用构成一致性", "逻辑校验",
|
||||
costValid ? "PASS" : "FAIL",
|
||||
"总费用: " + homepage.getTotalCost() + ", 分项合计: " + sum,
|
||||
costValid ? null : "总费用应等于药品费+检查费+化验费+治疗费+材料费", "AUTO", now);
|
||||
}
|
||||
|
||||
if (homepage.getSelfPayCost() != null && homepage.getInsuranceCost() != null
|
||||
&& homepage.getTotalCost() != null && homepage.getTotalCost().compareTo(BigDecimal.ZERO) > 0) {
|
||||
BigDecimal paySum = safeAdd(homepage.getSelfPayCost(), homepage.getInsuranceCost());
|
||||
boolean payValid = homepage.getTotalCost().compareTo(paySum) == 0;
|
||||
addCheck(checks, homepageId, "费用分担一致性", "逻辑校验",
|
||||
payValid ? "PASS" : "FAIL",
|
||||
"总费用: " + homepage.getTotalCost() + ", 自费+医保: " + paySum,
|
||||
payValid ? null : "总费用应等于自费费用+医保费用", "AUTO", now);
|
||||
}
|
||||
|
||||
return checks;
|
||||
}
|
||||
|
||||
private void checkRequiredField(List<MrHomepageQualityCheck> checks, Long homepageId,
|
||||
String itemName, String category, boolean isValid,
|
||||
String fieldName, Date now) {
|
||||
addCheck(checks, homepageId, itemName + "完整性", category,
|
||||
isValid ? "PASS" : "FAIL",
|
||||
fieldName + ": " + (isValid ? "已填写" : "未填写"),
|
||||
isValid ? null : "请填写" + fieldName, "AUTO", now);
|
||||
}
|
||||
|
||||
private void checkCostNonNegative(List<MrHomepageQualityCheck> checks, Long homepageId,
|
||||
String costName, BigDecimal value, Date now) {
|
||||
if (value != null) {
|
||||
boolean valid = value.compareTo(BigDecimal.ZERO) >= 0;
|
||||
addCheck(checks, homepageId, costName + "非负", "费用信息",
|
||||
valid ? "PASS" : "FAIL",
|
||||
costName + ": " + value,
|
||||
valid ? null : costName + "不能为负数", "AUTO", now);
|
||||
}
|
||||
}
|
||||
|
||||
private void addCheck(List<MrHomepageQualityCheck> checks, Long homepageId,
|
||||
String checkItem, String category, String result,
|
||||
String detail, String suggestion, String checker, Date now) {
|
||||
MrHomepageQualityCheck check = new MrHomepageQualityCheck()
|
||||
.setHomepageId(homepageId)
|
||||
.setCheckItem(checkItem)
|
||||
.setCheckCategory(category)
|
||||
.setCheckResult(result)
|
||||
.setCheckDetail(detail)
|
||||
.setSuggestion(suggestion)
|
||||
.setChecker(checker)
|
||||
.setCheckTime(now);
|
||||
save(check);
|
||||
checks.add(check);
|
||||
}
|
||||
|
||||
private BigDecimal safeAdd(BigDecimal a, BigDecimal b) {
|
||||
if (a == null) return b != null ? b : BigDecimal.ZERO;
|
||||
if (b == null) return a;
|
||||
return a.add(b);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.healthlink.his.mrhomepage.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.healthlink.his.mrhomepage.domain.MrHqmsReport;
|
||||
import com.healthlink.his.mrhomepage.mapper.MrHqmsReportMapper;
|
||||
import com.healthlink.his.mrhomepage.service.IMrHqmsReportService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class MrHqmsReportServiceImpl
|
||||
extends ServiceImpl<MrHqmsReportMapper, MrHqmsReport>
|
||||
implements IMrHqmsReportService {
|
||||
|
||||
@Override
|
||||
public List<MrHqmsReport> selectByHomepageId(Long homepageId) {
|
||||
return baseMapper.selectByHomepageId(homepageId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MrHqmsReport> selectByEncounterId(Long encounterId) {
|
||||
return baseMapper.selectByEncounterId(encounterId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.healthlink.his.mrhomepage.mapper.MrHqmsReportMapper">
|
||||
<resultMap id="MrHqmsReportResult" type="com.healthlink.his.mrhomepage.domain.MrHqmsReport">
|
||||
</resultMap>
|
||||
<select id="selectByHomepageId" resultMap="MrHqmsReportResult">
|
||||
SELECT * FROM mr_hqms_report WHERE homepage_id = #{homepageId} AND delete_flag = '0' ORDER BY create_time DESC
|
||||
</select>
|
||||
<select id="selectByEncounterId" resultMap="MrHqmsReportResult">
|
||||
SELECT * FROM mr_hqms_report WHERE encounter_id = #{encounterId} AND delete_flag = '0' ORDER BY create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -1,3 +1,11 @@
|
||||
import request from "@/utils/request"
|
||||
export function executeQualityCheck(id) { return request({ url: "/api/v1/mr-homepage/quality-check/" + id, method: "post" }) }
|
||||
export function submitHomepage(id) { return request({ url: "/api/v1/mr-homepage/submit/" + id, method: "put" }) }
|
||||
export function checkQuality(homepageId) { return request({ url: "/api/v1/mr-homepage/quality/check", method: "post", params: { homepageId } }) }
|
||||
export function getQualityResults(homepageId) { return request({ url: "/api/v1/mr-homepage/quality/results/" + homepageId, method: "get" }) }
|
||||
export function submitHqmsReport(homepageId, reportType) { return request({ url: "/api/v1/mr-homepage/hqms/report", method: "post", params: { homepageId, reportType } }) }
|
||||
export function getHqmsReportStatus(homepageId) { return request({ url: "/api/v1/mr-homepage/hqms/status/" + homepageId, method: "get" }) }
|
||||
export function listHqmsReports(homepageId) { return request({ url: "/api/v1/mr-homepage/hqms/list/" + homepageId, method: "get" }) }
|
||||
export function trackStatus(homepageId) { return request({ url: "/api/v1/mr-homepage/tracking/" + homepageId, method: "get" }) }
|
||||
export function borrowRecord(data) { return request({ url: "/api/v1/mr-homepage/tracking/borrow", method: "post", data }) }
|
||||
export function returnRecord(borrowingId) { return request({ url: "/api/v1/mr-homepage/tracking/return", method: "post", params: { borrowingId } }) }
|
||||
|
||||
@@ -6,3 +6,11 @@ export function executeQualityCheck(id) { return request({ url: '/api/v1/mr-home
|
||||
export function getQualityCheck(homepageId) { return request({ url: '/api/v1/mr-homepage/quality-check/' + homepageId, method: 'get' }) }
|
||||
export function getStatistics(params) { return request({ url: '/api/v1/mr-homepage/statistics', method: 'get', params }) }
|
||||
export function submitHomepage(id) { return request({ url: '/api/v1/mr-homepage/submit/' + id, method: 'put' }) }
|
||||
export function checkQuality(homepageId) { return request({ url: '/api/v1/mr-homepage/quality/check', method: 'post', params: { homepageId } }) }
|
||||
export function getQualityResults(homepageId) { return request({ url: '/api/v1/mr-homepage/quality/results/' + homepageId, method: 'get' }) }
|
||||
export function submitHqmsReport(homepageId, reportType) { return request({ url: '/api/v1/mr-homepage/hqms/report', method: 'post', params: { homepageId, reportType } }) }
|
||||
export function getHqmsReportStatus(homepageId) { return request({ url: '/api/v1/mr-homepage/hqms/status/' + homepageId, method: 'get' }) }
|
||||
export function listHqmsReports(homepageId) { return request({ url: '/api/v1/mr-homepage/hqms/list/' + homepageId, method: 'get' }) }
|
||||
export function saveDeathDiscussion(data) { return request({ url: '/api/v1/mr-homepage/death-discussion/save', method: 'post', data }) }
|
||||
export function listDeathDiscussions(homepageId) { return request({ url: '/api/v1/mr-homepage/death-discussion/list/' + homepageId, method: 'get' }) }
|
||||
export function getPendingDeadline() { return request({ url: '/api/v1/mr-homepage/death-discussion/pending-deadline', method: 'get' }) }
|
||||
|
||||
@@ -6,3 +6,9 @@ export function getDefects(encounterId) { return request({ url: "/api/v1/emr-qua
|
||||
export function getDefectStatistics() { return request({ url: "/api/v1/emr-quality/defect-statistics", method: "get" }) }
|
||||
export function getCompletionRate() { return request({ url: "/api/v1/emr-quality/completion-rate", method: "get" }) }
|
||||
export function getQualityStatistics(params) { return request({ url: "/api/v1/emr-quality/defect-statistics", method: "get", params }) }
|
||||
|
||||
// 终末质控
|
||||
export function runTerminalCheck(encounterId) { return request({ url: "/api/v1/quality/terminal/check/" + encounterId, method: "post" }) }
|
||||
export function getTerminalResults(encounterId) { return request({ url: "/api/v1/quality/terminal/results/" + encounterId, method: "get" }) }
|
||||
export function startDefectRectify(defectId) { return request({ url: "/api/v1/emr-quality/defect/rectify/" + defectId, method: "post" }) }
|
||||
export function completeDefectRectify(defectId) { return request({ url: "/api/v1/emr-quality/defect/complete/" + defectId, method: "post" }) }
|
||||
|
||||
7
healthlink-his-ui/src/assets/icons.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/accelerate.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
6
healthlink-his-ui/src/assets/icons/svg/accolade.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/accounting.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/achievement.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/adjustment.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/admission.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
6
healthlink-his-ui/src/assets/icons/svg/advise.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/affiliation.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
6
healthlink-his-ui/src/assets/icons/svg/agreement.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
6
healthlink-his-ui/src/assets/icons/svg/alert.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
6
healthlink-his-ui/src/assets/icons/svg/allergy.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/alliance.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/allocation.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
6
healthlink-his-ui/src/assets/icons/svg/allowance.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/amethyst.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/analytics.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/analyze.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/anesthesia.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
@@ -1,4 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M768 192H256c-35.2 0-64 28.8-64 64v576c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64V256c0-35.2-28.8-64-64-64z m-64 576H320V320h384v448z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64H384z m0 128h192v64H384z m0 128h128v64H384z" fill="currentColor"/>
|
||||
</svg>
|
||||
<path d="M768 128H256c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64V192c0-35.2-28.8-64-64-64z m0 64v64H256V192h512z" fill="currentColor"/>
|
||||
<path d="M320 320h384v64H320z" fill="currentColor"/>
|
||||
<path d="M320 448h384v64H320z" fill="currentColor"/>
|
||||
<path d="M320 576h384v64H320z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 349 B After Width: | Height: | Size: 416 B |
7
healthlink-his-ui/src/assets/icons/svg/appreciate.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/appropriation.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/approval.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/approve-check.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/arbitration.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/archive.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/ash.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/assess.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
6
healthlink-his-ui/src/assets/icons/svg/asset.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/attendance.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/audit-check.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/audit-log.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/audit-report.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/audit-trail.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
6
healthlink-his-ui/src/assets/icons/svg/audit.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/aurora.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
6
healthlink-his-ui/src/assets/icons/svg/backup.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/band.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/bank-card.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/barcode.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/basalt.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
@@ -0,0 +1,8 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 640h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 648 B |
7
healthlink-his-ui/src/assets/icons/svg/beryl.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
@@ -1,4 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M640 128H384c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h256c35.2 0 64-28.8 64-64V192c0-35.2-28.8-64-64-64z m-64 640H448V256h128v512z" fill="currentColor"/>
|
||||
<path d="M480 320h64v128h-64z m-64 192h192v64H416z" fill="currentColor"/>
|
||||
</svg>
|
||||
<path d="M768 128H256c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64V192c0-35.2-28.8-64-64-64z m0 64v64H256V192h512z" fill="currentColor"/>
|
||||
<path d="M320 320h384v64H320z" fill="currentColor"/>
|
||||
<path d="M320 448h384v64H320z" fill="currentColor"/>
|
||||
<path d="M320 576h384v64H320z" fill="currentColor"/>
|
||||
<path d="M320 704h384v64H320z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 332 B After Width: | Height: | Size: 471 B |
7
healthlink-his-ui/src/assets/icons/svg/birth-record.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/blessed.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/blood-bank.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
6
healthlink-his-ui/src/assets/icons/svg/bloom.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/blossom.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/bookmark.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/bounty.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/bouquet.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/branch-growth.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
6
healthlink-his-ui/src/assets/icons/svg/branch.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 448h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 576h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 538 B |
7
healthlink-his-ui/src/assets/icons/svg/brilliance.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
7
healthlink-his-ui/src/assets/icons/svg/bud.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 128c-211.2 0-384 172.8-384 384 0 106.24 43.52 202.24 113.92 271.36L256 896h512l-85.33-112.64C769.28 714.24 812.8 618.24 812.8 512c0-211.2-172.8-384-384-384z m0 576c-106.24 0-192-85.76-192-192s85.76-192 192-192 192 85.76 192 192-85.76 192-192 192z" fill="currentColor"/>
|
||||
<path d="M384 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M576 320h64v384h-64z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64h-256z" fill="currentColor"/>
|
||||
<path d="M384 512h256v64h-256z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |