Browse Source

Merge remote-tracking branch 'origin/dev' into dev

hill9868 6 years ago
parent
commit
bbccc9a440
16 changed files with 1873 additions and 941 deletions
  1. 143 0
      app/app-iot-server/src/main/java/com/yihu/iot/util/conceal/ConcealUtil.java
  2. 13 0
      business/base-service/src/main/java/com/yihu/jw/hospital/mapping/dao/PatientMappingDao.java
  3. 36 0
      business/base-service/src/main/java/com/yihu/jw/hospital/mapping/service/PatientMappingService.java
  4. 20 3
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  5. 242 53
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/EntranceService.java
  6. 161 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/util/ConvertUtil.java
  7. 820 802
      business/base-service/src/mqConfig/mqdata/BS16017.json
  8. 72 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/mapping/PatientMappingDO.java
  9. 6 1
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyPrescriptionDO.java
  10. 14 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyPrescriptionDiagnosisDO.java
  11. 278 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyHisPrescriptionVO.java
  12. 10 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyPrescriptionDiagnosisVO.java
  13. 2 2
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyPrescriptionInfoVO.java
  14. 40 79
      svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/MqSdkController.java
  15. 6 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java
  16. 10 1
      svr/svr-internet-hospital/src/main/resources/application.yml

+ 143 - 0
app/app-iot-server/src/main/java/com/yihu/iot/util/conceal/ConcealUtil.java

@ -0,0 +1,143 @@
package com.yihu.iot.util.conceal;
/**
 * 数据脱敏工具
 * Created by zdm on 2019/4/2.
 */
public class ConcealUtil {
    private static final int SIZE = 6;
    private static final String SYMBOL = "*";
    /**
     * 电话号码脱敏,达到保密效果
     *
     * @param userName 用户名
     * @return 替换后的用户名
     */
    public static String phoneConceal(String userName) {
        String userNameAfterReplaced = "";
        if (userName == null) {
            userName = "";
        }
        int nameLength = userName.length();
        if (nameLength <= 1) {
            userNameAfterReplaced = "*";
        } else if (nameLength == 2) {
            userNameAfterReplaced = replaceAction(userName, "(?<=\\d{0})\\d(?=\\d{1})");
        } else if (nameLength >= 3 && nameLength <= 6) {
            userNameAfterReplaced = replaceAction(userName, "(?<=\\d{1})\\d(?=\\d{1})");
        } else if (nameLength >= 7 && nameLength <= 10) {
            userNameAfterReplaced = replaceAction(userName, "(?<=\\d{3})\\d(?=\\d{3})");
        } else if (nameLength >= 11) {
            userNameAfterReplaced = replaceAction(userName, "(?<=\\d{3})\\d(?=\\d{4})");
        }
        return userNameAfterReplaced;
    }
    /**
     * 实际替换动作
     *
     * @param username username
     * @param regular  正则
     * @return
     */
    private static String replaceAction(String username, String regular) {
        return username.replaceAll(regular, "*");
    }
    /**
     * 身份证号替换,保留前四位和后四位
     * <p>
     * 如果身份证号为空 或者 null ,返回null ;否则,返回替换后的字符串;
     *
     * @param idCard 身份证号
     * @return
     */
    public static String idCardConceal(String idCard) {
        if (idCard.isEmpty() || idCard == null) {
            return null;
        } else {
            return replaceAction(idCard, "(?<=\\d{6})\\d(?=\\d{4})");
        }
    }
    /**
     * 银行卡替换,保留后四位
     * <p>
     * 如果银行卡号为空 或者 null ,返回null ;否则,返回替换后的字符串;
     *
     * @param bankCard 银行卡号
     * @return
     */
    public static String bankCardConceal(String bankCard) {
        if (bankCard.isEmpty() || bankCard == null) {
            return null;
        } else {
            return replaceAction(bankCard, "(?<=\\d{0})\\d(?=\\d{4})");
        }
    }
    /**
     * 姓名及地址脱敏
     * @param value
     * @return
     */
    public static String nameOrAddrConceal(String value) {
        if (null == value || "".equals(value)) {
            return value;
        }
        int len = value.length();
        int pamaone = len / 2;
        int pamatwo = pamaone - 1;
        int pamathree = len % 2;
        StringBuilder stringBuilder = new StringBuilder();
        if (len <= 2) {
            if (pamathree == 1) {
                return SYMBOL;
            }
            stringBuilder.append(value.charAt(0));
            stringBuilder.append(SYMBOL);
        } else {
            if (pamatwo <= 0) {
                stringBuilder.append(value.substring(0, 1));
                stringBuilder.append(SYMBOL);
                stringBuilder.append(value.substring(len - 1, len));
            } else if (pamatwo >= SIZE / 2 && SIZE + 1 != len) {
                int pamafive = (len - SIZE) / 2;
                stringBuilder.append(value.substring(0, pamafive));
                for (int i = 0; i < SIZE; i++) {
                    stringBuilder.append(SYMBOL);
                }
                if ((pamathree == 0 && SIZE / 2 == 0) || (pamathree != 0 && SIZE % 2 != 0)) {
                    stringBuilder.append(value.substring(len - pamafive, len));
                } else {
                    stringBuilder.append(value.substring(len - (pamafive + 1), len));
                }
            } else {
                int pamafour = len - 2;
                stringBuilder.append(value.substring(0, 1));
                for (int i = 0; i < pamafour; i++) {
                    stringBuilder.append(SYMBOL);
                }
                stringBuilder.append(value.substring(len - 1, len));
            }
        }
        return stringBuilder.toString();
    }
/*    public static void main(String[] args) throws IOException {
        String strName= nameOrAddrConceal("张三");
        System.out.println(strName);
        String addr= nameOrAddrConceal("厦门市");
        System.out.println(addr);
        String idcard= idCardConceal("350825199012033283");
        System.out.println(idcard);
        String phone= phoneConceal("17689202624");
        System.out.println(phone);
    }*/
}

+ 13 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/mapping/dao/PatientMappingDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.hospital.mapping.dao;
import com.yihu.jw.entity.hospital.mapping.PatientMappingDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Trick on 2019/5/27.
 */
public interface PatientMappingDao extends PagingAndSortingRepository<PatientMappingDO, String>, JpaSpecificationExecutor<PatientMappingDO> {
    PatientMappingDO findByIdcardAndSource(String idcard,String source);
}

+ 36 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/mapping/service/PatientMappingService.java

@ -0,0 +1,36 @@
package com.yihu.jw.hospital.mapping.service;
import com.alibaba.fastjson.JSONArray;
import com.yihu.jw.entity.hospital.mapping.PatientMappingDO;
import com.yihu.jw.hospital.mapping.dao.PatientMappingDao;
import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
/**
 * Created by Trick on 2019/5/27.
 * 互联网医院居民信息映射
 */
@Service
public class PatientMappingService {
    @Autowired
    private PatientMappingDao patientMappingDao;
    @Autowired
    private EntranceService entranceService;
    @Value("${demo.flag}")
    private boolean demoFlag;
    public String findHisPatNo(String idCard)throws Exception{
        PatientMappingDO patientMappingDO = patientMappingDao.findByIdcardAndSource(idCard,"1");
        if(patientMappingDO!=null){
            return patientMappingDO.getMappingCode();
        }
        entranceService.BS15018(null,idCard,demoFlag);
        return null;
    }
}

+ 20 - 3
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -38,6 +38,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
@ -47,6 +48,7 @@ import java.util.*;
 * Created by Trick on 2019/5/17.
 */
@Service
@Transactional
public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, PrescriptionDao> {
    @Autowired
@ -103,9 +105,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        String sql ="SELECT " +
                " p.id, " +
                " p.saas_id AS saasId, " +
                " p.recipe_no AS recipeNo, " +
                " p.visit_no AS visitNo, " +
                " p.real_order AS realOrder," +
                " p.origin_real_order AS originRealOrder," +
                " p.adm_no AS admNo," +
                " p.origin_adm_no AS originAdmNo," +
                " p.serial_no AS serialNo," +
                " p.type AS type, " +
                " p.patient_code AS patientCode, " +
                " p.patient_name AS patientName, " +
@ -256,6 +260,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        String reservationTime = json.getString("reservationTime");
        Integer consultType = json.getInteger("consultType");
        String originRealOrder = json.getString("originRealOrder");
        String originAdmNo = json.getString("originAdmNo");
        String serialNo = json.getString("serialNo");
        BasePatientDO basePatientDO = basePatientDao.findById(patient);
        PatientMedicareCardDO cardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel(PatientMedicareCardDO.Type.MedicareCard.getType(),patient,"1");
        BaseDoctorDO baseDoctorDO = baseDoctorDao.findOne(doctor);
@ -321,4 +330,12 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        return true;
    }
    public Boolean cancelPrescription(String prescriptionId){
        WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(prescriptionId);
        prescriptionDO.setStatus(-2);
        return true;
    }
}

+ 242 - 53
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/EntranceService.java

@ -1,21 +1,31 @@
package com.yihu.jw.hospital.prescription.service.entrance;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.hospital.prescription.service.entrance.util.ConvertUtil;
import com.yihu.jw.hospital.prescription.service.entrance.util.MqSdkUtil;
import com.yihu.jw.restmodel.hospital.prescription.WlyyHisPrescriptionVO;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionDiagnosisVO;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionInfoVO;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionVO;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.util.date.DateUtil;
import io.swagger.annotations.ApiParam;
import net.sf.json.JSONArray;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@ -86,7 +96,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String qutpatientBalance(String cardNo,boolean demoFlag) throws Exception {
    public net.sf.json.JSONObject qutpatientBalance(String cardNo, boolean demoFlag) throws Exception {
        String resp ="";
        String fid=BS15017;
        if(demoFlag){
@ -109,8 +119,7 @@ public class EntranceService {
            //解析
            resp= MqSdkUtil.xml2jsonObject(resp);
        }
        return resp;
        return  ConvertUtil.convertObjectEnvelopByString(resp);
    }
    /**
@ -120,7 +129,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String BS15018(String SOCIAL_NO, String CARD_NO,boolean demoFlag) throws Exception {
    public JSONArray BS15018(String SOCIAL_NO, String CARD_NO,boolean demoFlag) throws Exception {
        String fid = BS15018;
        String resp = "";
        if (demoFlag) {
@ -145,18 +154,20 @@ public class EntranceService {
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return ConvertUtil.convertListEnvelopByString(resp);
    }
    /**
     * 门诊处方信息(所有处方)
     * 门诊处方信息(所有处方)根据处方信息封装到实体中
     * @param REGISTER_SN 流水号
     * @param realOrder 处方号
     * @param PAT_NO 病人id
     * @param ADM_NO 就诊唯一号
     * @param demoFlag 是否获取demo数据
     * @return
     * @throws Exception
     */
    public String BS16017(String REGISTER_SN,String PAT_NO,String ADM_NO,boolean demoFlag) throws Exception {
    public List<WlyyPrescriptionVO>  BS16017(String REGISTER_SN,String realOrder,String PAT_NO,String ADM_NO,boolean demoFlag) throws Exception {
        String fid=BS16017;
        String resp = "";
        if (demoFlag) {
@ -172,6 +183,9 @@ public class EntranceService {
            if (StringUtils.isNotBlank(REGISTER_SN)) {
                sbs.append("<query compy=\"=\" item=\"REGISTER_SN\" splice=\"and\" value=\"'" + REGISTER_SN + "'\"/>");
            }
            if (StringUtils.isNotBlank(realOrder)) {
                sbs.append("<query compy=\"=\" item=\"real_order\" splice=\"and\" value=\"'" + realOrder + "'\"/>");
            }
            if (StringUtils.isNotBlank(PAT_NO)) {
                sbs.append("<query compy=\"=\" item=\"PAT_NO\" splice=\"and\" value=\"'" + PAT_NO + "'\"/>");
            }
@ -183,7 +197,160 @@ public class EntranceService {
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return convertWlyyPrescriptionVOInBodyRow(resp);
    }
    /**
     * 返回对象数组数据解析
     * @param obj
     * @return
     * @throws Exception
     */
    public List<WlyyPrescriptionVO>  convertWlyyPrescriptionVOInBodyRow(String obj)throws Exception{
        net.sf.json.JSONObject jsonObject= net.sf.json.JSONObject.fromObject(obj);
        if(null!=jsonObject&&"1".equals(jsonObject.get("code").toString())){
            JSONArray jsonObjectMgsInfo=(JSONArray)jsonObject.get("MsgInfo");
            if(null!=jsonObjectMgsInfo) {
                //处方实体
                WlyyPrescriptionVO wlyyPrescriptionVO=new WlyyPrescriptionVO();
                //用于存放已解析的处方
                Map<String, WlyyPrescriptionVO> wlyyPrescriptionVOMap = new HashMap<>();
                //用于存放已解析的诊断
                Map<String, String> wlyyPrescriptionDiagnosisVOHashMap = new HashMap<>();
                //诊断list
                List<WlyyPrescriptionDiagnosisVO> wlyyPrescriptionDiagnosisVOS = new ArrayList<>();
                //药品实体list
                List<WlyyPrescriptionInfoVO> wlyyPrescriptionInfoVOS= new ArrayList<>();
                //药品
                WlyyPrescriptionInfoVO wlyyPrescriptionInfoVO;
                for (Object object : jsonObjectMgsInfo) {
                    net.sf.json.JSONObject jsonObjectBody = (net.sf.json.JSONObject) object;
                    jsonObjectBody = (net.sf.json.JSONObject) jsonObjectBody.get("body");
                    if (null != jsonObjectBody) {
                        jsonObjectBody = (net.sf.json.JSONObject) jsonObjectBody.get("row");
                        if (null != jsonObjectBody) {
                            //诊断
                            WlyyPrescriptionDiagnosisVO wlyyPrescriptionDiagnosisVO;
                            //是否为药品:0否,1是
                            String ypFlag = null != jsonObjectBody.get("YP_FLAG") ? jsonObjectBody.get("YP_FLAG").toString() : "";
                            Set<String> stringSet = new HashSet<>();
                            if ("1".equals(ypFlag)) {
                                //处方号
                                String realOrder = null != jsonObjectBody.get("real_order") ? jsonObjectBody.get("real_order").toString() : "";
                                if (!(null != stringSet && stringSet.contains(realOrder))) {
                                    //初始化处方
                                    wlyyPrescriptionVO = initWlyyPrescriptionVo(new WlyyPrescriptionVO(), jsonObjectBody, realOrder);
                                    wlyyPrescriptionVOMap.put(realOrder, wlyyPrescriptionVO);
                                    //主诊断 毒蛇咬伤&T63.001
                                    String[] icdName = jsonObjectBody.get("icd_name").toString().split("&");
                                    String[] diagTwo = jsonObjectBody.get("diag_two").toString().toString().split("&");
                                    String[] diagThree = jsonObjectBody.get("diag_three").toString().toString().split("&");
                                    String[] diagFour = jsonObjectBody.get("diag_four").toString().toString().split("&");
                                    String[] diagFive = jsonObjectBody.get("diag_five").toString().toString().split("&");
                                    if (null != icdName && icdName.length > 1 && !wlyyPrescriptionDiagnosisVOHashMap.containsKey(icdName[1].toString())) {
                                        //主诊断
                                        wlyyPrescriptionDiagnosisVO = initWlyyPrescriptionDiagnosisVO(realOrder, icdName[0].toString(), icdName[1].toString(), 1);
                                        wlyyPrescriptionDiagnosisVOS.add(wlyyPrescriptionDiagnosisVO);
                                        wlyyPrescriptionDiagnosisVOHashMap.put(icdName[1].toString(), icdName[0].toString());
                                    }
                                    if (null != diagTwo && diagTwo.length > 1 && !wlyyPrescriptionDiagnosisVOHashMap.containsKey(diagTwo[1].toString())) {
                                        //第二诊断
                                        wlyyPrescriptionDiagnosisVO = initWlyyPrescriptionDiagnosisVO(realOrder, diagTwo[0].toString(), diagTwo[1].toString(), 2);
                                        wlyyPrescriptionDiagnosisVOS.add(wlyyPrescriptionDiagnosisVO);
                                        wlyyPrescriptionDiagnosisVOHashMap.put(icdName[1].toString(), icdName[0].toString());
                                    }
                                    if (null != diagThree && diagThree.length > 1 && !wlyyPrescriptionDiagnosisVOHashMap.containsKey(diagThree[1].toString())) {
                                        //第三诊断
                                        wlyyPrescriptionDiagnosisVO = initWlyyPrescriptionDiagnosisVO(realOrder, diagThree[0].toString(), diagThree[1].toString(), 2);
                                        wlyyPrescriptionDiagnosisVOS.add(wlyyPrescriptionDiagnosisVO);
                                    }
                                    if (null != diagFour && diagFour.length > 1 && !wlyyPrescriptionDiagnosisVOHashMap.containsKey(diagFour[1].toString())) {
                                        //第四诊断
                                        wlyyPrescriptionDiagnosisVO = initWlyyPrescriptionDiagnosisVO(realOrder, diagFour[0].toString(), diagFour[1].toString(), 2);
                                        wlyyPrescriptionDiagnosisVOS.add(wlyyPrescriptionDiagnosisVO);
                                        wlyyPrescriptionDiagnosisVOHashMap.put(icdName[1].toString(), icdName[0].toString());
                                    }
                                    if (null != diagFive && diagFive.length > 1 && !wlyyPrescriptionDiagnosisVOHashMap.containsKey(diagFive[1].toString())) {
                                        //第五诊断
                                        wlyyPrescriptionDiagnosisVO = initWlyyPrescriptionDiagnosisVO(realOrder, diagFive[0].toString(), diagFive[1].toString(), 2);
                                        wlyyPrescriptionDiagnosisVOS.add(wlyyPrescriptionDiagnosisVO);
                                        wlyyPrescriptionDiagnosisVOHashMap.put(icdName[1].toString(), icdName[0].toString());
                                    }
                                    stringSet.add(realOrder);
                                } else {
                                    wlyyPrescriptionVO = wlyyPrescriptionVOMap.get(realOrder);
                                }
                                //药品
                                wlyyPrescriptionInfoVO = new WlyyPrescriptionInfoVO();
                                wlyyPrescriptionInfoVO.setPrescriptionId(realOrder);
                                wlyyPrescriptionInfoVO.setDrugNo(null != jsonObjectBody.get("DRUG_CODE") ? jsonObjectBody.get("DRUG_CODE").toString() : "");
                                wlyyPrescriptionInfoVO.setDrugName(null != jsonObjectBody.get("DRUG_NAME") ? jsonObjectBody.get("DRUG_NAME").toString() : "");
                                wlyyPrescriptionInfoVO.setDispDeposite(null != jsonObjectBody.get("DISP_DEPOSITE") ? jsonObjectBody.get("DISP_DEPOSITE").toString() : "");
                                wlyyPrescriptionInfoVO.setDosage(null != jsonObjectBody.get("YPYL00") ? jsonObjectBody.get("YPYL00").toString() : "");
                                wlyyPrescriptionInfoVO.setQuantity(null != jsonObjectBody.get("DRUG_QTY") ? jsonObjectBody.get("DRUG_QTY").toString() : "");
                                wlyyPrescriptionInfoVO.setUnit(null != jsonObjectBody.get("DCYYDW") ? jsonObjectBody.get("DCYYDW").toString() : "");
                                wlyyPrescriptionInfoVO.setUsage(null != jsonObjectBody.get("YPPL00") ? jsonObjectBody.get("YPPL00").toString() : "");
                                wlyyPrescriptionInfoVO.setSupplyCode(null != jsonObjectBody.get("YPYF00") ? jsonObjectBody.get("YPYF00").toString() : "");
                                wlyyPrescriptionInfoVO.setDays(null != jsonObjectBody.get("days") ? jsonObjectBody.get("days").toString() : "");
                                wlyyPrescriptionInfoVO.setFrequency(null != jsonObjectBody.get("frequency") ? jsonObjectBody.get("frequency").toString() : "");
                                wlyyPrescriptionInfoVO.setDel(1);
                                wlyyPrescriptionInfoVOS.add(wlyyPrescriptionInfoVO);
                            }
                        }
                    }
                    wlyyPrescriptionVO.setDiagnosisVOs(wlyyPrescriptionDiagnosisVOS);
                    wlyyPrescriptionVO.setInfoVOs(wlyyPrescriptionInfoVOS);
                }
                Collection<WlyyPrescriptionVO> wlyyPrescriptionVOCollection=wlyyPrescriptionVOMap.values();
                return new ArrayList<WlyyPrescriptionVO>(wlyyPrescriptionVOCollection);
            }else {
                return null;
            }
        }else {
            return  null;
        }
    }
    /**
     * 初始化处方接口
     * @param wlyyPrescriptionVO
     * @param jsonObjectBody
     * @param realOrder
     * @return
     */
    public WlyyPrescriptionVO initWlyyPrescriptionVo(WlyyPrescriptionVO wlyyPrescriptionVO , net.sf.json.JSONObject jsonObjectBody,String realOrder){
        wlyyPrescriptionVO.setAdmNo(null != jsonObjectBody.get("ADM_NO") ? jsonObjectBody.get("ADM_NO").toString() : "");
        wlyyPrescriptionVO.setRealOrder(realOrder);
        wlyyPrescriptionVO.setSerialNo(null != jsonObjectBody.get("REGISTER_SN") ? jsonObjectBody.get("REGISTER_SN").toString() : "");
        wlyyPrescriptionVO.setType(1);
        wlyyPrescriptionVO.setPatientCode(null != jsonObjectBody.get("PAT_NO") ? jsonObjectBody.get("PAT_NO").toString() : "");
        wlyyPrescriptionVO.setPatientName(null != jsonObjectBody.get("UOM") ? jsonObjectBody.get("UOM").toString() : "");
        //TODO 通过映射表获取居民身份证号e
        wlyyPrescriptionVO.setIdcard("");
        //TODO 社保卡号
        wlyyPrescriptionVO.setSsc("");
        wlyyPrescriptionVO.setHisDoctorCode(null != jsonObjectBody.get("PRESC_DOC") ? jsonObjectBody.get("PRESC_DOC").toString() : "");
        wlyyPrescriptionVO.setHisDeptCode(null != jsonObjectBody.get("PRESC_SPEC") ? jsonObjectBody.get("PRESC_SPEC").toString() : "");
        return  wlyyPrescriptionVO;
    }
    /**
     * 初始化诊断信息
     * @param icdCode
     * @param icdName
     * @param type
     * @return
     * @throws Exception
     */
    public WlyyPrescriptionDiagnosisVO initWlyyPrescriptionDiagnosisVO(String realOrder,String icdCode,String icdName,Integer type) throws Exception{
        WlyyPrescriptionDiagnosisVO wlyyPrescriptionDiagnosisVO=new WlyyPrescriptionDiagnosisVO();
        wlyyPrescriptionDiagnosisVO.setPrescriptionId(realOrder);
        wlyyPrescriptionDiagnosisVO.setCode(icdCode);
        wlyyPrescriptionDiagnosisVO.setName(icdName);
        wlyyPrescriptionDiagnosisVO.setCreateTime(new Date());
        wlyyPrescriptionDiagnosisVO.setType(type);
       return wlyyPrescriptionDiagnosisVO;
    }
    /**
@ -192,7 +359,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String BS30025(String PAT_NO,String ADM_NO,String REGISTER_SN,String PAT_CARDNO,String social_no,boolean demoFlag) throws Exception {
    public JSONArray BS30025(String PAT_NO,String startTime,String endTime,boolean demoFlag) throws Exception {
        String fid=BS30025; String resp = "";
        if (demoFlag) {
            resp = getJosnFileResullt(fid);
@ -207,24 +374,18 @@ public class EntranceService {
            if (StringUtils.isNotBlank(PAT_NO)) {
                sbs.append("<query compy=\"=\" item=\"PAT_NO\" splice=\"and\" value=\"'" + PAT_NO + "'\"/>");
            }
            if (StringUtils.isNotBlank(ADM_NO)) {
                sbs.append("<query compy=\"=\" item=\"ADM_NO\" splice=\"and\" value=\"'" + ADM_NO + "'\"/>");
            }
            if (StringUtils.isNotBlank(REGISTER_SN)) {
                sbs.append("<query compy=\"=\" item=\"REGISTER_SN\" splice=\"and\" value=\"'" + REGISTER_SN + "'\"/>");
            }
            if (StringUtils.isNotBlank(PAT_CARDNO)) {
                sbs.append("<query compy=\"=\" item=\"PAT_CARDNO\" splice=\"and\" value=\"'" + PAT_CARDNO + "'\"/>");
            if (StringUtils.isNotBlank(startTime)) {
                sbs.append("<query compy=\"&gt;=\" item=\"CON_DATE\" splice=\"and\" value=\"'" + startTime + "'\"/>");
            }
            if (StringUtils.isNotBlank(social_no)) {
                sbs.append("<query compy=\"=\" item=\"social_no\" splice=\"and\" value=\"'" + social_no + "'\"/>");
            if (StringUtils.isNotBlank(endTime)) {
                sbs.append("<query compy=\"&lt\" item=\"CON_DATE\" splice=\"and\" value=\"'" + endTime + "'\"/>");
            }
            //查询信息结束
            sbs.append("</MsgInfo></ESBEntry>");
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return ConvertUtil.convertListEnvelopInRow(resp);
    }
    /**
@ -251,7 +412,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String MS53001(String charge_code,String py_code,String stock_amount,String visible_flag,boolean demoFlag) throws Exception {
    public JSONArray MS53001(String charge_code,String py_code,String stock_amount,String visible_flag,boolean demoFlag) throws Exception {
        String fid="MS53001";
        String resp="";
        if (demoFlag) {
@ -280,7 +441,7 @@ public class EntranceService {
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return ConvertUtil.convertListEnvelopInBodyRow(resp);
    }
@ -289,7 +450,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String BS10110(String supply_code,boolean demoFlag) throws Exception {
    public JSONArray BS10110(String supply_code,boolean demoFlag) throws Exception {
        String fid=BS10110;
        String resp="";
        if (demoFlag) {
@ -309,7 +470,7 @@ public class EntranceService {
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return ConvertUtil.convertListEnvelopInBodyRow(resp);
    }
@ -323,7 +484,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String BS10111(String card_no,String doctor,String dept,String charge_type,String win_no,boolean demoFlag) throws Exception {
    public net.sf.json.JSONObject BS10111(String card_no, String doctor, String dept, String charge_type, String win_no, boolean demoFlag) throws Exception {
        String fid=BS10111;
        String resp="";
        if (demoFlag) {
@ -342,41 +503,69 @@ public class EntranceService {
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return ConvertUtil.convertListEnvelopInRequest(resp);
    }
    /**
     *  线上处方
     *  @param card_no 卡号
     *  @param doctor 医生工号
     *  @param dept 科室编码
     *  @param charge_code 号别
     *  @param win_no 分部号
     * @return
     * @throws Exception
     */
    public String BS10112(String card_no,String doctor,String dept,String charge_code,String win_no,String charge_flag,String quantity, String serial_no,String group_no,
                          String serial,String icd_code,String diag_two,String diag_three,String diag_four,String diag_five,String dosage,String unit,String usage,String supply_code, String days,String frequency,boolean demoFlag) throws Exception {
    public net.sf.json.JSONObject BS10112(String jsonData, boolean demoFlag) throws Exception {
        String fid=BS10112;
        ObjectMapper objectMapper = new ObjectMapper();
        List<WlyyHisPrescriptionVO> patientSubscribeJkedus = objectMapper.readValue(jsonData,  new TypeReference<List<WlyyHisPrescriptionVO>>(){});
        String resp="";
        if (demoFlag) {
            resp = getJosnFileResullt(fid);
        } else {
            //多个request? 诊断2到诊断4
            StringBuffer sbs = new StringBuffer();
            sbs.append("<ESBEntry><AccessControl><Fid>BS10112</Fid><UserName>jkzl</UserName><Password>123456</Password></AccessControl>");
            sbs.append("<MessageHeader><Fid>BS10112</Fid><MsgDate>2018-10-09 16:52:39</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
            sbs.append("<MsgInfo><endNum>20000</endNum><Msg><![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?><root>");
            sbs.append("<resquest card_no=\"" + card_no + "\" doctor=\"" + doctor + "\" dept=\"" + dept + "\" charge_code=\"" + charge_code + "\" win_no=\"" + win_no + "\" charge_flag=\"" + charge_flag + "\" ");
            sbs.append("quantity=\"" + quantity + "\"  serial_no=\"" + serial_no + "\"  group_no=\"" + group_no + "\"   serial=\"" + serial + "\"   icd_code=\"" + icd_code/*+"\" dosage=\""+dosage+"\" unit=\""+unit+"\" "*/);
            sbs.append(/*"usage=\""+usage+"\" supply_code=\""+supply_code+"\" days=\""+days+"\" frequency=\""+frequency+*/"\" days=\"" + days + "\" frequency=\"" + frequency + "\"/>");
            for(WlyyHisPrescriptionVO vo:patientSubscribeJkedus){
                //必输字段
                sbs.append("<resquest card_no=\"" + vo.getCardNo() + "\" doctor=\"" + vo.getDoctor() + "\" dept=\"" + vo.getDept() + "\" charge_code=\"" + vo.getChargeCode() + "\" win_no=\"" + vo.getWinNo() + "\" charge_flag=\"" + vo.getChargeFlag() + "\" ");
                sbs.append("quantity=\"" + vo.getQuantity() + "\"  serial_no=\"" + vo.getSerialNo() + "\"  group_no=\"" + vo.getGroupNo() + "\"   serial=\"" + vo.getSerial() + "\"   icd_code=\"" + vo.getIcdCode()+"\"");
                //选填字段
                if(StringUtils.isNotBlank(vo.getDiagTwo())){
                    sbs.append("\" diag_two=\""+vo.getDiagTwo()+"\"");
                }
                if(StringUtils.isNotBlank(vo.getDiagThree())){
                    sbs.append("\" diag_three=\""+vo.getDiagThree()+"\"");
                }
                if(StringUtils.isNotBlank(vo.getDiagFour())){
                    sbs.append("\" diag_four=\""+vo.getDiagFour()+"\"");
                }
                if (StringUtils.isNotBlank(vo.getDiagFive())) {
                    sbs.append("\" diag_five=\"" + vo.getDiagFive() + "\"");
                }
                if (StringUtils.isNotBlank(vo.getDosage())) {
                    sbs.append("\" dosage=\"" + vo.getDosage() + "\"");
                }
                if (StringUtils.isNotBlank(vo.getUnit())) {
                    sbs.append("\" unit=\"" + vo.getUnit() + "\"");
                }
                if (StringUtils.isNotBlank(vo.getUsage())) {
                    sbs.append("\" usage=\"" + vo.getUsage() + "\"");
                }
                if(StringUtils.isNotBlank(vo.getSupplyCode())){
                    sbs.append("\" supply_code=\""+vo.getSupplyCode()+"\"");
                }
                if(StringUtils.isNotBlank(vo.getDays())){
                    sbs.append("\" days=\""+vo.getDays()+"\"");
                }
                if(StringUtils.isNotBlank(vo.getFrequency())){
                    sbs.append("\" frequency=\""+vo.getFrequency()+ "\"");
                }
                sbs.append("/>");
            }
            sbs.append("</root>]]></Msg><startNum>1</startNum></MsgInfo></ESBEntry>");
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return ConvertUtil.convertListEnvelopInRequest(resp);
    }
    /**
@ -388,7 +577,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String BS10114(String doctor_code,String dept,String charge_type,String win_no,boolean demoFlag) throws Exception {
    public JSONArray BS10114(String doctor_code,String dept,String charge_type,String win_no,boolean demoFlag) throws Exception {
        String fid=BS10114;
        String resp="";
        if (demoFlag) {
@ -417,7 +606,7 @@ public class EntranceService {
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return ConvertUtil.convertListEnvelopInBodyRow(resp);
    }
    /**
@ -425,7 +614,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String MS02001(boolean demoFlag) throws Exception {
    public JSONArray MS02001(boolean demoFlag) throws Exception {
        String fid=MS02001;
        String resp="";
        if (demoFlag) {
@ -442,7 +631,7 @@ public class EntranceService {
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return ConvertUtil.convertListEnvelopInBody(resp);
    }
    /**
@ -450,7 +639,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String MS02013(boolean demoFlag) throws Exception {
    public JSONArray MS02013(boolean demoFlag) throws Exception {
        String fid=MS02013;
        String resp="";
        if (demoFlag) {
@ -466,7 +655,7 @@ public class EntranceService {
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return ConvertUtil.convertListEnvelopInBodyRow(resp);
    }
    /**
@ -474,7 +663,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String MS30012(boolean demoFlag) throws Exception {
    public JSONArray MS30012(boolean demoFlag) throws Exception {
        String fid="MS30012";
        String resp="";
        if (demoFlag) {
@ -490,7 +679,7 @@ public class EntranceService {
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return ConvertUtil.convertListEnvelopInBody(resp);
    }
    /**
@ -498,7 +687,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String MS25001(String py_code,boolean demoFlag) throws Exception {
    public JSONArray MS25001(String py_code,boolean demoFlag) throws Exception {
        String fid="MS25001";
        String resp="";
        if (demoFlag) {
@ -518,7 +707,7 @@ public class EntranceService {
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return resp;
        return ConvertUtil.convertListEnvelopInBodyRow(resp);
    }
}

+ 161 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/util/ConvertUtil.java

@ -0,0 +1,161 @@
package com.yihu.jw.hospital.prescription.service.entrance.util;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
 * Created by zdm on 2019/5/27.
 */
public class ConvertUtil {
    /**
     * 返回单个对象数据解析
     * @param obj
     * @return
     * @throws Exception
     */
    public static JSONObject convertObjectEnvelopByString(String obj)throws Exception{
        JSONObject jsonObject=JSONObject.fromObject(obj);
        if(null!=jsonObject&&"1".equals(jsonObject.get("code").toString())){
            JSONObject jsonObjectMgsInfo=(JSONObject)jsonObject.get("MsgInfo");
            if(null!=jsonObjectMgsInfo){
                return  (JSONObject)jsonObjectMgsInfo.get("Msg");
            }else {
                return null;
            }
        }else {
            return null;
        }
    }
    /**
     * 返回对象数组数据解析
     * @param obj
     * @return
     * @throws Exception
     */
    public static  JSONArray convertListEnvelopByString(String obj)throws Exception{
        JSONObject jsonObject=JSONObject.fromObject(obj);
        if(null!=jsonObject&&"1".equals(jsonObject.get("code").toString())){
            JSONArray jsonObjectMgsInfo=(JSONArray)jsonObject.get("MsgInfo");
            if(null!=jsonObjectMgsInfo){
                return jsonObjectMgsInfo;
            }else {
                return null;
            }
        }else {
            return  null;
        }
    }
    /**
     * 返回对象数组数据解析
     * @param obj
     * @return
     * @throws Exception
     */
    public static  JSONArray convertListEnvelopInBodyRow(String obj)throws Exception{
        JSONObject jsonObject=JSONObject.fromObject(obj);
        JSONArray jsonArray=new JSONArray();
        if(null!=jsonObject&&"1".equals(jsonObject.get("code").toString())){
            JSONArray jsonObjectMgsInfo=(JSONArray)jsonObject.get("MsgInfo");
            if(null!=jsonObjectMgsInfo){
                for (Object object : jsonObjectMgsInfo) {
                    JSONObject jsonObjectBody=(JSONObject)object;
                    jsonObjectBody= (JSONObject)jsonObjectBody.get("body");
                    if(null!=jsonObjectBody){
                        jsonArray.add(jsonObjectBody.get("row")) ;
                    }
                }
                return jsonArray;
            }else {
                return null;
            }
        }else {
            return  null;
        }
    }
    /**
     * 返回对象数组数据解析
     * @param obj
     * @return
     * @throws Exception
     */
    public  static JSONArray convertListEnvelopInRow(String obj)throws Exception{
        JSONObject jsonObject=JSONObject.fromObject(obj);
        JSONArray jsonArray=new JSONArray();
        if(null!=jsonObject&&"1".equals(jsonObject.get("code").toString())){
            JSONArray jsonObjectMgsInfo=(JSONArray)jsonObject.get("MsgInfo");
            if(null!=jsonObjectMgsInfo){
                for (Object object : jsonObjectMgsInfo) {
                    JSONObject jsonObjectBody=(JSONObject)object;
                    if(null!=jsonObjectBody){
                        jsonArray.add(jsonObjectBody.get("row")) ;
                    }
                }
                return jsonArray;
            }else {
                return null;
            }
        }else {
            return  null;
        }
    }
    /**
     * 返回对象数组数据解析
     * @param obj
     * @return
     * @throws Exception
     */
    public static  JSONArray convertListEnvelopInBody(String obj)throws Exception{
        JSONObject jsonObject=JSONObject.fromObject(obj);
        JSONArray jsonArray=new JSONArray();
        if(null!=jsonObject&&"1".equals(jsonObject.get("code").toString())){
            JSONArray jsonObjectMgsInfo=(JSONArray)jsonObject.get("MsgInfo");
            if(null!=jsonObjectMgsInfo){
                for (Object object : jsonObjectMgsInfo) {
                    JSONObject jsonObjectBody=(JSONObject)object;
                    Object objectBody=jsonObjectBody.get("body");
                    if(objectBody instanceof JSONArray){
                        net.sf.json.JSONArray jsonArrayBody = (net.sf.json.JSONArray) jsonObjectBody.get("body");
                        for (Object objectBodySub : jsonArrayBody) {
                            jsonArray.add(objectBodySub);
                        }
                    }else {
                        jsonArray.add(jsonObjectBody) ;
                    }
                }
                return jsonArray;
            }else {
                return null;
            }
        }else {
            return  null;
        }
    }
    /**
     * 返回对象数组数据解析
     * @param obj
     * @return
     * @throws Exception
     */
    public static  JSONObject convertListEnvelopInRequest(String obj)throws Exception{
        JSONObject jsonObject=JSONObject.fromObject(obj);
        if(null!=jsonObject&&"1".equals(jsonObject.get("code").toString())){
            JSONArray jsonObjectMgsInfo=(JSONArray)jsonObject.get("MsgInfo");
            if(null!=jsonObjectMgsInfo){
                for (Object object : jsonObjectMgsInfo) {
                    JSONObject jsonObjectBody = (JSONObject) object;
                    return jsonObjectBody;
                }
            }
        }
        return  null;
    }
}

+ 820 - 802
business/base-service/src/mqConfig/mqdata/BS16017.json

@ -7,7 +7,7 @@
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
			"createTime": "20190523165157"
		},
		"body": {
			"row": {
@ -45,841 +45,859 @@
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
				"diag_five": "&",
				"real_order": "460476732"
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "03486",
				"DRUG_SPEC": "0.1g 5ml/支",
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": "张爱华",
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "1.38",
				"DISP_PRICE": "1.3773",
				"DISP_USER": "11095",
				"DISP_SPEC": "2090500",
				"DISP_DEPOSITE": "72",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "利多卡因注射液",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "1",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": "5.00",
				"DCYYDW": "ml",
				"YPYF00": "局麻",
				"YPPL00": "即时",
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "03486",
					"DRUG_SPEC": "0.1g 5ml/支",
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": "张爱华",
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "1.38",
					"DISP_PRICE": "1.3773",
					"DISP_USER": "11095",
					"DISP_SPEC": "2090500",
					"DISP_DEPOSITE": "72",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "利多卡因注射液",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "1",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": "5.00",
					"DCYYDW": "ml",
					"YPYF00": "局麻",
					"YPPL00": "即时",
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "100021",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": "人",
				"DISP_DATE": [],
				"DISP_AMT": "7.00",
				"DISP_PRICE": "7",
				"DISP_USER": [],
				"DISP_SPEC": "1190007",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:37AM",
				"DRUG_NAME": "诊察费3(新增、门诊)",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": "1",
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": [],
				"diag_two": [],
				"diag_three": [],
				"diag_four": [],
				"diag_five": []
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "100021",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": "人",
					"DISP_DATE": [],
					"DISP_AMT": "7.00",
					"DISP_PRICE": "7",
					"DISP_USER": [],
					"DISP_SPEC": "1190007",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:37AM",
					"DRUG_NAME": "诊察费3(新增、门诊)",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": "1",
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": [],
					"diag_two": [],
					"diag_three": [],
					"diag_four": [],
					"diag_five": [],
					"real_order": "460476731"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "100067",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": "人",
				"DISP_DATE": [],
				"DISP_AMT": "3.00",
				"DISP_PRICE": "3",
				"DISP_USER": [],
				"DISP_SPEC": "1190007",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:37AM",
				"DRUG_NAME": "诊察费1(急诊)",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": "1",
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": [],
				"diag_two": [],
				"diag_three": [],
				"diag_four": [],
				"diag_five": []
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "100067",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": "人",
					"DISP_DATE": [],
					"DISP_AMT": "3.00",
					"DISP_PRICE": "3",
					"DISP_USER": [],
					"DISP_SPEC": "1190007",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:37AM",
					"DRUG_NAME": "诊察费1(急诊)",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": "1",
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": [],
					"diag_two": [],
					"diag_three": [],
					"diag_four": [],
					"diag_five": [],
					"real_order": "460476731"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "100111",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": "人",
				"DISP_DATE": [],
				"DISP_AMT": "10.00",
				"DISP_PRICE": "10",
				"DISP_USER": [],
				"DISP_SPEC": "1190007",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:37AM",
				"DRUG_NAME": "诊察费2(三级副主任、急诊)",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": "1",
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": [],
				"diag_two": [],
				"diag_three": [],
				"diag_four": [],
				"diag_five": []
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "100111",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": "人",
					"DISP_DATE": [],
					"DISP_AMT": "10.00",
					"DISP_PRICE": "10",
					"DISP_USER": [],
					"DISP_SPEC": "1190007",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:37AM",
					"DRUG_NAME": "诊察费2(三级副主任、急诊)",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": "1",
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": [],
					"diag_two": [],
					"diag_three": [],
					"diag_four": [],
					"diag_five": [],
					"real_order": "460476731"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "110004",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": [],
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "69.00",
				"DISP_PRICE": "69",
				"DISP_USER": "9992",
				"DISP_SPEC": "1190007",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "急诊监护费",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": [],
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "110004",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": [],
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "69.00",
					"DISP_PRICE": "69",
					"DISP_USER": "9992",
					"DISP_SPEC": "1190007",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "急诊监护费",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": [],
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "150001",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": [],
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "138.00",
				"DISP_PRICE": "138",
				"DISP_USER": "9992",
				"DISP_SPEC": "1190007",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "大抢救",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": [],
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "150001",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": [],
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "138.00",
					"DISP_PRICE": "138",
					"DISP_USER": "9992",
					"DISP_SPEC": "1190007",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "大抢救",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": [],
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "200093",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": [],
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "23.00",
				"DISP_PRICE": "23",
				"DISP_USER": "9992",
				"DISP_SPEC": "1190007",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "局部浸润麻醉(通用)",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": [],
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "200093",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": [],
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "23.00",
					"DISP_PRICE": "23",
					"DISP_USER": "9992",
					"DISP_SPEC": "1190007",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "局部浸润麻醉(通用)",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": [],
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "200366",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": [],
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "3.00",
				"DISP_PRICE": "3",
				"DISP_USER": "9992",
				"DISP_SPEC": "1190007",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "肌肉注射(通用)",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": [],
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "200366",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": [],
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "3.00",
					"DISP_PRICE": "3",
					"DISP_USER": "9992",
					"DISP_SPEC": "1190007",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "肌肉注射(通用)",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": [],
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "31708",
				"DRUG_SPEC": "0.4g 30粒/盒",
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": "张爱华",
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "47.48",
				"DISP_PRICE": "47.48",
				"DISP_USER": "11095",
				"DISP_SPEC": "2090501",
				"DISP_DEPOSITE": "83",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "季德胜蛇药片",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "1",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": "10.00",
				"DCYYDW": "粒",
				"YPYF00": "患处外用",
				"YPPL00": "即时",
				"YPZYSX": "孕妇忌用,肝肾功能不全慎用.忌食",
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "31708",
					"DRUG_SPEC": "0.4g 30粒/盒",
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": "张爱华",
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "47.48",
					"DISP_PRICE": "47.48",
					"DISP_USER": "11095",
					"DISP_SPEC": "2090501",
					"DISP_DEPOSITE": "83",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "季德胜蛇药片",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "1",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": "10.00",
					"DCYYDW": "粒",
					"YPYF00": "患处外用",
					"YPPL00": "即时",
					"YPZYSX": "孕妇忌用,肝肾功能不全慎用.忌食",
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "31708",
				"DRUG_SPEC": "0.4g 30粒/盒",
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": "张爱华",
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "47.48",
				"DISP_PRICE": "47.48",
				"DISP_USER": "11095",
				"DISP_SPEC": "2090501",
				"DISP_DEPOSITE": "83",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "季德胜蛇药片",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "1",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": "10.00",
				"DCYYDW": "粒",
				"YPYF00": "口服",
				"YPPL00": "1次/6小时",
				"YPZYSX": "孕妇忌用,肝肾功能不全慎用.忌食",
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "31708",
					"DRUG_SPEC": "0.4g 30粒/盒",
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": "张爱华",
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "47.48",
					"DISP_PRICE": "47.48",
					"DISP_USER": "11095",
					"DISP_SPEC": "2090501",
					"DISP_DEPOSITE": "83",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "季德胜蛇药片",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "1",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": "10.00",
					"DCYYDW": "粒",
					"YPYF00": "口服",
					"YPPL00": "1次/6小时",
					"YPZYSX": "孕妇忌用,肝肾功能不全慎用.忌食",
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "31708",
				"DRUG_SPEC": "0.4g 30粒/盒",
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": "张爱华",
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "47.48",
				"DISP_PRICE": "47.48",
				"DISP_USER": "11095",
				"DISP_SPEC": "2090501",
				"DISP_DEPOSITE": "83",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "季德胜蛇药片",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "1",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": "20.00",
				"DCYYDW": "粒",
				"YPYF00": "口服",
				"YPPL00": "即时",
				"YPZYSX": "孕妇忌用,肝肾功能不全慎用.忌食",
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "31708",
					"DRUG_SPEC": "0.4g 30粒/盒",
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": "张爱华",
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "47.48",
					"DISP_PRICE": "47.48",
					"DISP_USER": "11095",
					"DISP_SPEC": "2090501",
					"DISP_DEPOSITE": "83",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "季德胜蛇药片",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "1",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": "20.00",
					"DCYYDW": "粒",
					"YPYF00": "口服",
					"YPPL00": "即时",
					"YPZYSX": "孕妇忌用,肝肾功能不全慎用.忌食",
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "330006",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": [],
				"DISP_DATE": [],
				"DISP_AMT": "36.00",
				"DISP_PRICE": "36",
				"DISP_USER": [],
				"DISP_SPEC": "2080000",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "常规心电图检查(床边)(功能室)",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": [],
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "330006",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": [],
					"DISP_DATE": [],
					"DISP_AMT": "36.00",
					"DISP_PRICE": "36",
					"DISP_USER": [],
					"DISP_SPEC": "2080000",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "常规心电图检查(床边)(功能室)",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": [],
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "330034",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": [],
				"DISP_DATE": [],
				"DISP_AMT": "11.00",
				"DISP_PRICE": "11",
				"DISP_USER": [],
				"DISP_SPEC": "2080000",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "心电事件记录(功能检查科)",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": [],
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "330034",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": [],
					"DISP_DATE": [],
					"DISP_AMT": "11.00",
					"DISP_PRICE": "11",
					"DISP_USER": [],
					"DISP_SPEC": "2080000",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "心电事件记录(功能检查科)",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": [],
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "670487",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": [],
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "130.00",
				"DISP_PRICE": "130",
				"DISP_USER": "9992",
				"DISP_SPEC": "1190007",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "中清创缝合(创面在30-15cm2)(通",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": [],
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "670487",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": [],
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "130.00",
					"DISP_PRICE": "130",
					"DISP_USER": "9992",
					"DISP_SPEC": "1190007",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "中清创缝合(创面在30-15cm2)(通",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": [],
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "801122",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": [],
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "6.37",
				"DISP_PRICE": "6.37",
				"DISP_USER": "9992",
				"DISP_SPEC": "1190007",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "一次性被套",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": [],
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "801122",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": [],
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "6.37",
					"DISP_PRICE": "6.37",
					"DISP_USER": "9992",
					"DISP_SPEC": "1190007",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "一次性被套",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": [],
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "P00304",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": [],
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "0.28",
				"DISP_PRICE": "0.28",
				"DISP_USER": "9992",
				"DISP_SPEC": "1190007",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "一次性使用无菌注射器带针",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": [],
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "P00304",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": [],
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "0.28",
					"DISP_PRICE": "0.28",
					"DISP_USER": "9992",
					"DISP_SPEC": "1190007",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "一次性使用无菌注射器带针",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": [],
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	},
	{
		"head": {
			"msgId": "BS16017",
			"version": "2",
			"msgName": "门诊处方信息(所有处方)",
			"sourceSysCode": "S01",
			"targetSysCode": "S60",
			"createTime": "20190522133820"
		},
		"body": {
			"row": {
				"action": "select",
				"ADM_NO": "P11160895-0(2)",
				"CHARGES_RELATE": "46047673",
				"DISP_NO": "46047673",
				"DRUG_CODE": "P00748",
				"DRUG_SPEC": [],
				"PRESC_DOC": "8632",
				"PRESC_SPEC": "1190007",
				"DRUG_QTY": "1",
				"UOM": [],
				"DISP_DATE": "2018-08-07",
				"DISP_AMT": "4.80",
				"DISP_PRICE": "4.8",
				"DISP_USER": "9992",
				"DISP_SPEC": "1190007",
				"DISP_DEPOSITE": "00",
				"MEDICARE_TYPE": "00",
				"REF_FLAG": "0",
				"CHARGES_DATE": "08  7 2018  1:40AM",
				"DRUG_NAME": "医用无菌罩单",
				"PAY_MARK": "0",
				"REGISTER_SN": "45127672",
				"YP_FLAG": "0",
				"PAT_NO": "P11160895-0   ",
				"YPYL00": [],
				"DCYYDW": [],
				"YPYF00": [],
				"YPPL00": [],
				"YPZYSX": [],
				"dxk_meeting_no": [],
				"icd_name": "毒蛇咬伤&T63.001",
				"diag_two": "&",
				"diag_three": "&",
				"diag_four": "&",
				"diag_five": "&"
		{
			"head": {
				"msgId": "BS16017",
				"version": "2",
				"msgName": "门诊处方信息(所有处方)",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190523165157"
			},
			"body": {
				"row": {
					"action": "select",
					"ADM_NO": "P11160895-0(2)",
					"CHARGES_RELATE": "46047673",
					"DISP_NO": "46047673",
					"DRUG_CODE": "P00748",
					"DRUG_SPEC": [],
					"PRESC_DOC": "8632",
					"PRESC_SPEC": "1190007",
					"DRUG_QTY": "1",
					"UOM": [],
					"DISP_DATE": "2018-08-07",
					"DISP_AMT": "4.80",
					"DISP_PRICE": "4.8",
					"DISP_USER": "9992",
					"DISP_SPEC": "1190007",
					"DISP_DEPOSITE": "00",
					"MEDICARE_TYPE": "00",
					"REF_FLAG": "0",
					"CHARGES_DATE": "08  7 2018  1:40AM",
					"DRUG_NAME": "医用无菌罩单",
					"PAY_MARK": "0",
					"REGISTER_SN": "45127672",
					"YP_FLAG": "0",
					"PAT_NO": "P11160895-0   ",
					"YPYL00": [],
					"DCYYDW": [],
					"YPYF00": [],
					"YPPL00": [],
					"YPZYSX": [],
					"dxk_meeting_no": [],
					"icd_name": "毒蛇咬伤&T63.001",
					"diag_two": "&",
					"diag_three": "&",
					"diag_four": "&",
					"diag_five": "&",
					"real_order": "460476732"
				}
			}
		}
	}]
		}]
}

+ 72 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/mapping/PatientMappingDO.java

@ -0,0 +1,72 @@
package com.yihu.jw.entity.hospital.mapping;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by Trick on 2019/5/27.
 */
@Entity
@Table(name = "wlyy_patient_mapping")
public class PatientMappingDO extends UuidIdentityEntity {
    private String patient;
    private String patientName;
    private String idcard;
    private String mappingCode;//第三方居民code',
    private String source;//第三方数据来源:1.中山医院-his',
    private Date createTime;//创建时间',
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    public String getMappingCode() {
        return mappingCode;
    }
    public void setMappingCode(String mappingCode) {
        this.mappingCode = mappingCode;
    }
    public String getSource() {
        return source;
    }
    public void setSource(String source) {
        this.source = source;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

File diff suppressed because it is too large
+ 6 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyPrescriptionDO.java


+ 14 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyPrescriptionDiagnosisDO.java

@ -24,6 +24,11 @@ public class WlyyPrescriptionDiagnosisDO extends UuidIdentityEntity {
     */
    private String prescriptionId;
    /**
     * 诊断编码
     */
    private String code;
    /**
     * 诊断结果名称
     */
@ -49,6 +54,15 @@ public class WlyyPrescriptionDiagnosisDO extends UuidIdentityEntity {
        this.prescriptionId = prescriptionId;
    }
    @Column(name = "code")
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "name")
    public String getName() {
        return name;

+ 278 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyHisPrescriptionVO.java

@ -0,0 +1,278 @@
package com.yihu.jw.restmodel.hospital.prescription;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.restmodel.UuidIdentityVOWithOperator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date;
import java.util.List;
/**
 * 
 * his在线处方主表vo
 * </pre>
 * @since 1.
 */
@ApiModel(value = "WlyyHisPrescriptionVO", description = "在线处方主表")
public class WlyyHisPrescriptionVO extends UuidIdentityVOWithOperator {
    /**
     * 卡号
     */
  private String cardNo;
    /**
     * 医生工号
     */
    private String doctor;
    /**
     * 科室编码
     */
    private String dept;
    /**
     * 收费码
     */
    private String chargeCode;
    /**
     * 分部号
     */
    private String winNo;
    /**
     * 项目类别
     */
    private String chargeFlag;
    /**
     * 数量
     */
    private String quantity;
    /**
     * 挂号流水号
     */
    private String serialNo;
    /**
     * 库房号
     */
    private String groupNo;
    /**
     * 药品序列号
     */
    private String serial;
    /**
     * 主诊断编码
     */
    private String icdCode;
    /**
     * 用量
     */
    private String dosage;
    /**
     * 用量单位
     */
    private String unit;
    /**
     * 频率
     */
    private String usage;
    /**
     * 用法
     */
    private String supplyCode;
    /**
     * 天数
     */
    private String days;
    /**
     * 组号
     */
    private String frequency;
    /**
     * 第二诊断
     */
    private String diagTwo;
    /**
     * 第三诊断
     */
    private String diagThree;
    /**
     * 第四诊断
     */
    private String diagFour;
    /**
     * 第五诊断
     */
  private String diagFive;
    public String getCardNo() {
        return cardNo;
    }
    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    public String getChargeCode() {
        return chargeCode;
    }
    public void setChargeCode(String chargeCode) {
        this.chargeCode = chargeCode;
    }
    public String getWinNo() {
        return winNo;
    }
    public void setWinNo(String winNo) {
        this.winNo = winNo;
    }
    public String getChargeFlag() {
        return chargeFlag;
    }
    public void setChargeFlag(String chargeFlag) {
        this.chargeFlag = chargeFlag;
    }
    public String getQuantity() {
        return quantity;
    }
    public void setQuantity(String quantity) {
        this.quantity = quantity;
    }
    public String getSerialNo() {
        return serialNo;
    }
    public void setSerialNo(String serialNo) {
        this.serialNo = serialNo;
    }
    public String getGroupNo() {
        return groupNo;
    }
    public void setGroupNo(String groupNo) {
        this.groupNo = groupNo;
    }
    public String getSerial() {
        return serial;
    }
    public void setSerial(String serial) {
        this.serial = serial;
    }
    public String getIcdCode() {
        return icdCode;
    }
    public void setIcdCode(String icdCode) {
        this.icdCode = icdCode;
    }
    public String getDiagTwo() {
        return diagTwo;
    }
    public void setDiagTwo(String diagTwo) {
        this.diagTwo = diagTwo;
    }
    public String getDiagThree() {
        return diagThree;
    }
    public void setDiagThree(String diagThree) {
        this.diagThree = diagThree;
    }
    public String getDiagFour() {
        return diagFour;
    }
    public void setDiagFour(String diagFour) {
        this.diagFour = diagFour;
    }
    public String getDiagFive() {
        return diagFive;
    }
    public void setDiagFive(String diagFive) {
        this.diagFive = diagFive;
    }
    public String getDosage() {
        return dosage;
    }
    public void setDosage(String dosage) {
        this.dosage = dosage;
    }
    public String getUnit() {
        return unit;
    }
    public void setUnit(String unit) {
        this.unit = unit;
    }
    public String getUsage() {
        return usage;
    }
    public void setUsage(String usage) {
        this.usage = usage;
    }
    public String getSupplyCode() {
        return supplyCode;
    }
    public void setSupplyCode(String supplyCode) {
        this.supplyCode = supplyCode;
    }
    public String getDays() {
        return days;
    }
    public void setDays(String days) {
        this.days = days;
    }
    public String getFrequency() {
        return frequency;
    }
    public void setFrequency(String frequency) {
        this.frequency = frequency;
    }
}

+ 10 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyPrescriptionDiagnosisVO.java

@ -28,6 +28,8 @@ public class WlyyPrescriptionDiagnosisVO extends UuidIdentityVOWithOperator {
    @ApiModelProperty(value = "关联处方", example = "模块1")
    private String prescriptionId;
    @ApiModelProperty(value = "诊断编码", example = "模块1")
    private String code;
    /**
     * 诊断结果名称
     */
@ -55,6 +57,14 @@ public class WlyyPrescriptionDiagnosisVO extends UuidIdentityVOWithOperator {
        this.prescriptionId = prescriptionId;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }

+ 2 - 2
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyPrescriptionInfoVO.java

@ -54,13 +54,13 @@ public class WlyyPrescriptionInfoVO extends UuidIdentityVOWithOperator {
    /**
     *
     */
    @ApiModelProperty(value = "", example = "模块1")
    @ApiModelProperty(value = "数量", example = "模块1")
    private String quantity;
    /**
     *
     */
    @ApiModelProperty(value = "", example = "模块1")
    @ApiModelProperty(value = "用量单位", example = "模块1")
    private String unit;
    /**

+ 40 - 79
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/MqSdkController.java

@ -2,6 +2,8 @@ package com.yihu.jw.entrance.controller;
import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
import com.yihu.jw.hospital.prescription.service.entrance.util.ConvertUtil;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionVO;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
@ -15,6 +17,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
 * Created by zdm on 2019/5/16.
@ -35,8 +40,8 @@ public class MqSdkController extends EnvelopRestEndpoint {
            @ApiParam(name = "cardNo", value = "卡号", required = true)
            @RequestParam(value = "cardNo") String cardNo) {
        try {
            String obj = entranceService.qutpatientBalance(cardNo,demoFlag);
          return convertObjectEnvelopByString(obj);
           JSONObject obj= entranceService.qutpatientBalance(cardNo,demoFlag);
          return ObjEnvelop.getSuccess("获取成功",obj);
        } catch (Exception e) {
            e.printStackTrace();
            return ObjEnvelop.getError("获取失败"+e.getMessage());
@ -50,8 +55,8 @@ public class MqSdkController extends EnvelopRestEndpoint {
            @RequestParam(value = "socialNo",required = false) String socialNo,
            @ApiParam(name = "cardNo", value = "就诊卡号", required = false)
            @RequestParam(value = "cardNo",required = false) String cardNo) throws Exception {
        String obj = entranceService.BS15018(socialNo, cardNo, demoFlag);
        return convertListEnvelopByString(obj);
        JSONArray obj = entranceService.BS15018(socialNo, cardNo, demoFlag);
        return success(obj);
    }
    @GetMapping(value = "/BS16017")
@ -62,25 +67,23 @@ public class MqSdkController extends EnvelopRestEndpoint {
            @ApiParam(name = "patNo", value = "病人id", required = false)
            @RequestParam(value = "patNo",required = false) String patNo,
            @ApiParam(name = "admNo", value = "住院唯一号", required = false)
            @RequestParam(value = "admNo",required = false) String admNo) throws Exception {
        String obj = entranceService.BS16017(registerSn, patNo, admNo, demoFlag);
        return convertListEnvelopInBodyRow(obj);
            @RequestParam(value = "admNo",required = false) String admNo,
            @ApiParam(name = "realOrder", value = "处方号", required = false)
            @RequestParam(value = "realOrder",required = false) String realOrder) throws Exception {
        List<WlyyPrescriptionVO> obj = entranceService.BS16017(registerSn, patNo, admNo,realOrder, demoFlag);
        return success(obj);
    }
    @GetMapping(value = "/BS30025")
    @ApiOperation(value = " 查询某个时间段的患者门诊就诊记录 V1.00")
    public ListEnvelop BS30025(@ApiParam(name = "patNo", value = "居民id")
                          @RequestParam(value = "patNo",required = false) String patNo,
                          @ApiParam(name = "admNo", value = "就诊唯一号")
                          @RequestParam(value = "admNo",required = false) String admNo,
                          @ApiParam(name = "registerSn", value = "流水号(处方号)")
                          @RequestParam(value = "registerSn",required = false) String registerSn,
                          @ApiParam(name = "patCardNo", value = "卡号")
                          @RequestParam(value = "patCardNo",required = false) String patCardNo,
                          @ApiParam(name = "socialNo", value = "身份证号")
                          @RequestParam(value = "socialNo",required = false) String socialNo) throws Exception {
        String obj = entranceService.BS30025(patNo, admNo, registerSn, patCardNo, socialNo, demoFlag);
        return convertListEnvelopInRow(obj);
                          @ApiParam(name = "startTime", value = "开始时间")
                          @RequestParam(value = "startTime",required = false) String startTime,
                          @ApiParam(name = "endTime", value = "结束时间")
                          @RequestParam(value = "endTime",required = false) String endTime) throws Exception {
        JSONArray obj = entranceService.BS30025(patNo, startTime, endTime, demoFlag);
        return success(obj);
    }
    @GetMapping(value = "/MS30001")
@ -104,8 +107,8 @@ public class MqSdkController extends EnvelopRestEndpoint {
                          @RequestParam(value = "stockAmount", required = false) String stockAmount,
                          @ApiParam(name = "visibleFlag", value = "可用标志(0可用1不可用)")
                          @RequestParam(value = "visibleFlag", required = false) String visibleFlag)throws Exception{
           String obj=  entranceService.MS53001(chargeCode,pyCode,stockAmount,visibleFlag,demoFlag);
           return convertListEnvelopInBodyRow(obj);
        JSONArray obj=  entranceService.MS53001(chargeCode,pyCode,stockAmount,visibleFlag,demoFlag);
           return success(obj);
    }
    @GetMapping(value = "/BS10110")
@ -113,8 +116,8 @@ public class MqSdkController extends EnvelopRestEndpoint {
    public ListEnvelop BS10110(
            @ApiParam(name = "supplyCode", value = "编码")
            @RequestParam(value = "supplyCode", required = false) String supplyCode) throws Exception{
            String obj=  entranceService.BS10110(supplyCode,demoFlag);
            return convertListEnvelopInBodyRow(obj);
        JSONArray obj=  entranceService.BS10110(supplyCode,demoFlag);
            return success(obj);
    }
    @PostMapping(value = "/BS10111")
@ -130,60 +133,18 @@ public class MqSdkController extends EnvelopRestEndpoint {
            @RequestParam(value = "chargeType", required = false) String chargeType,
            @ApiParam(name = "winNo", value = "分部号")
            @RequestParam(value = "winNo", required = false) String winNo) throws Exception {
        String obj = entranceService.BS10111(cardNo, doctor, dept, chargeType, winNo,demoFlag);
        return convertListEnvelopInRequest(obj);
        JSONObject obj = entranceService.BS10111(cardNo, doctor, dept, chargeType, winNo,demoFlag);
        return ObjEnvelop.getSuccess("获取成功",obj);
    }
    //多个前端使用json传参
    @PostMapping(value = "/BS10112")
    @ApiOperation(value = "线上处方接口")
    public ObjEnvelop BS10112(
            @ApiParam(name = "cardNo", value = "卡号")
            @RequestParam(value = "cardNo", required = true) String cardNo,
            @ApiParam(name = "doctor", value = "医生工号")
            @RequestParam(value = "doctor", required = true) String doctor,
            @ApiParam(name = "dept", value = "科室编码")
            @RequestParam(value = "dept", required = true) String dept,
            @ApiParam(name = "chargeCode", value = "收费码")
            @RequestParam(value = "chargeCode", required = true) String chargeCode,
            @ApiParam(name = "winNo", value = "分部号")
            @RequestParam(value = "winNo", required = true) String winNo,
            @ApiParam(name = "chargeFlag", value = "项目类别")
            @RequestParam(value = "chargeFlag", required = true) String chargeFlag,
            @ApiParam(name = "quantity", value = "数量")
            @RequestParam(value = "quantity", required = true) String quantity,
            @ApiParam(name = "serialNo", value = "挂号流水号")
            @RequestParam(value = "serialNo", required = true) String serialNo,
            @ApiParam(name = "groupNo", value = "库房号")
            @RequestParam(value = "groupNo", required = true) String groupNo,
            @ApiParam(name = "serial", value = "药品序列号")
            @RequestParam(value = "serial", required = true) String serial,
            @ApiParam(name = "icdCode", value = "主诊断编码")
            @RequestParam(value = "icdCode", required = true) String icdCode,
            @ApiParam(name = "diagTwo", value = "第二诊断")
            @RequestParam(value = "diagTwo", required = false) String diagTwo,
            @ApiParam(name = "diagThree", value = "第三诊断")
            @RequestParam(value = "diagThree", required = false) String diagThree,
            @ApiParam(name = "diagFour", value = "第四诊断")
            @RequestParam(value = "diagFour", required = false) String diagFour,
            @ApiParam(name = "diagFive", value = "第五诊断")
            @RequestParam(value = "diagFive", required = false) String diagFive,
            @ApiParam(name = "dosage", value = "用量")
            @RequestParam(value = "dosage", required = false) String dosage,
            @ApiParam(name = "unit", value = "用量单位")
            @RequestParam(value = "unit", required = false) String unit,
            @ApiParam(name = "usage", value = "频率")
            @RequestParam(value = "usage", required = false) String usage,
            @ApiParam(name = "supplyCode", value = "用法")
            @RequestParam(value = "supplyCode", required = false) String supplyCode,
            @ApiParam(name = "days", value = "天数")
            @RequestParam(value = "days", required = false) String days,
            @ApiParam(name = "frequency", value = "组号")
            @RequestParam(value = "frequency", required = false) String frequency) throws Exception {
        //TODO 处理多条药品
        String obj = entranceService.BS10112(cardNo, doctor, dept, chargeCode, winNo, chargeFlag, quantity, serialNo, groupNo,
                serial, icdCode, diagTwo, diagThree, diagFour, diagFive, dosage, unit, usage, supplyCode, days, frequency,demoFlag);
        return  convertListEnvelopInRequest(obj);
            @ApiParam(name = "jsonData", value = "处方开方json数组对象")
            @RequestBody String jsonData) throws Exception {
        JSONObject obj = entranceService.BS10112(jsonData,demoFlag);
        return  success(obj);
    }
@ -198,30 +159,30 @@ public class MqSdkController extends EnvelopRestEndpoint {
            @RequestParam(value = "chargeType", required = false) String chargeType,
            @ApiParam(name = "winNo", value = "分部号")
            @RequestParam(value = "winNo", required = false) String winNo) throws Exception {
        String obj = entranceService.BS10114(doctorCode, dept, chargeType, winNo,demoFlag);
        return convertListEnvelopInBodyRow(obj);
        JSONArray obj = entranceService.BS10114(doctorCode, dept, chargeType, winNo,demoFlag);
        return success(obj);
    }
    @GetMapping(value = "/MS02001")
    @ApiOperation(value = "科室字典  ")
    public ListEnvelop MS02001() throws Exception {
        String obj = entranceService.MS02001(demoFlag);
        JSONArray obj = entranceService.MS02001(demoFlag);
        //TODO 待解析 存储入库
        return convertListEnvelopInBody(obj);
        return success(obj);
    }
    @GetMapping(value = "/MS02013")
    @ApiOperation(value = "号别字典接口   ")
    public ListEnvelop MS02013() throws Exception {
        String obj = entranceService.MS02013(demoFlag);
        return convertListEnvelopInBodyRow(obj);
        JSONArray obj = entranceService.MS02013(demoFlag);
        return success(obj);
    }
    @GetMapping(value = "/MS30012")
    @ApiOperation(value = "医院频次")
    public ListEnvelop MS30012() throws Exception {
        String obj = entranceService.MS30012(demoFlag);
        return convertListEnvelopInBody(obj);
        JSONArray obj = entranceService.MS30012(demoFlag);
        return success(obj);
    }
@ -229,8 +190,8 @@ public class MqSdkController extends EnvelopRestEndpoint {
    @ApiOperation(value = "Icd10诊断编码")
    public ListEnvelop MS25001( @ApiParam(name = "pyCode", value = "拼音码")
                           @RequestParam(value = "pyCode", required = false) String pyCode)throws Exception {
        String obj = entranceService.MS25001(pyCode,demoFlag);
        return convertListEnvelopInBodyRow(obj);
        JSONArray obj = entranceService.MS25001(pyCode,demoFlag);
        return success(obj);
    }
    /**

+ 6 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

@ -60,7 +60,13 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
        return success(BaseHospitalRequestMapping.Prescription.api_success,prescriptionService.checkPrescription(patient));
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.cancelPrescription)
    @ApiOperation(value = "居民取消续方", notes = "居民取消续方")
    public ObjEnvelop<Boolean> cancelPrescription(@ApiParam(name = "prescriptionId", value = "续方ID")
                                                      @RequestParam(value = "prescriptionId", required = false) String prescriptionId) {
        return success(BaseHospitalRequestMapping.Prescription.api_success,prescriptionService.cancelPrescription(prescriptionId));
    }
    //===========

+ 10 - 1
svr/svr-internet-hospital/src/main/resources/application.yml

@ -113,6 +113,9 @@ wechat:
# 短信验证码发送的客户端标识,居民端
sms:
  clientId: EwC0iRSrcP
# mq 是否获取his数据,flag代表获取演示数据,false代表获取his真实数据
demo:
  flag: true
---
spring:
  profiles: jwtest
@ -147,6 +150,9 @@ sms:
  clientId: EwC0iRSrcP
myFamily:
  qrCodeFailurTime: 2
# mq 是否获取his数据,flag代表获取演示数据,false代表获取his真实数据
demo:
  flag: true
---
spring:
  profiles: prod
@ -177,4 +183,7 @@ wechat:
sms:
  clientId: EwC0iRSrcP #todo 待配置
myFamily:
  qrCodeFailurTime: 2
  qrCodeFailurTime: 2
# mq 是否获取his数据,flag代表获取演示数据,false代表获取his真实数据
demo:
  flag: false