123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498 |
- package com.lemon.lifecenter.controller;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.LinkedHashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.TreeMap;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import org.json.simple.JSONValue;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.bind.annotation.RestController;
- import com.lemon.lifecenter.common.LifeCenterConfigVO;
- import com.lemon.lifecenter.common.LifeCenterFunction;
- import com.lemon.lifecenter.dto.ApiPhrResponseDTO;
- import com.lemon.lifecenter.dto.ApiSymptomDTO;
- import com.lemon.lifecenter.dto.AppVersionDTO;
- import com.lemon.lifecenter.dto.DeviceInfoDTO;
- import com.lemon.lifecenter.dto.HlRequestDTO;
- import com.lemon.lifecenter.dto.PatientDTO;
- import com.lemon.lifecenter.service.RestApiService;
- @RestController
- @RequestMapping("/lifeCenter/api")
- public class RestApiController {
-
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
- @Autowired
- private RestApiService service;
-
- @RequestMapping(value="/tokenTest", method = RequestMethod.POST)
- public String tokenTest(@RequestBody HlRequestDTO dto) {
- String apiKey = service.selectApiKey(dto);
-
- String token = "";
- String id = dto.getManagerId();
- String time = LifeCenterFunction.getNow();
- int centerCode = dto.getCenterCode();
- String careAgencyCode = dto.getCareAgencyCode();
-
- try {
- token = LifeCenterFunction.aesEncrypt(apiKey, LifeCenterConfigVO.IV, id+"|"+careAgencyCode+"|"+time);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- return token;
- }
-
- /**
- * api 분기
- * @param dto
- * resourceType
- * bloodPressure : 혈압
- * bloodSugar : 혈당
- * oxygenSaturation : 산소포화도
- * pulseRate : 맥박수
- * temperature : 체온
- * patientInfoList : 환자정보
- * munjin : 문진 정보
- * symptom : 환자 임상정보
- * @return json String
- */
- @RequestMapping(value="/toAction", method = RequestMethod.POST)
- public String moveToAction(@RequestBody HlRequestDTO dto) {
-
- String result = "";
- String message = "";
- String token = dto.getToken();
- LinkedHashMap<String, Object> object = new LinkedHashMap<>();
- if (!token.equals("")) {
- String apiKey = service.selectApiKey(dto);
- if (apiKey.equals("")) {
- object.put("error", "invalidToken");
- message = "invalidToken";
- result = object.toString();
- } else {
- try {
- token = LifeCenterFunction.aesDecrypt(apiKey, LifeCenterConfigVO.IV, token);
- String[] splitToken = token.split("[|]");
- String managerId = splitToken[0];
- //int centerCode = Integer.parseInt(splitToken[1]);
- String careAgencyCode = splitToken[1];
- String time = splitToken[2];
-
- if (managerId.equals(dto.getManagerId()) && careAgencyCode.equals(dto.getCareAgencyCode())) {
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Calendar cal = Calendar.getInstance();
- Date getDate = dateFormat.parse(time);
- cal.setTime(getDate);
- cal.add(Calendar.MINUTE, 15);
- String tokenDateTime = dateFormat.format(cal.getTime());
- getDate = dateFormat.parse(tokenDateTime);
-
- Date nowDate = new Date();
- if (nowDate.getTime() < getDate.getTime()) {
-
- String resourceType = dto.getResourceType();
- if (resourceType.equals("")) {
- object.put("error", "emptyResourceType");
- message = "emptyResourceType";
- result = object.toString();
- } else {
- if (resourceType.equals("bloodPressure") || resourceType.equals("bloodSugar") ||
- resourceType.equals("oxygenSaturation") || resourceType.equals("pulseRate") || resourceType.equals("temperature")) {
-
- result = selectPhrData(dto);
-
- } else if (resourceType.equals("clinicMemo")) {
- result = selectClinicMemoList(dto);
- } else if (resourceType.equals("patientInfo")) {
- result = selectHLPatientList(dto);
- } else if (resourceType.equals("survey")) {
- result = selectMunjinDataList(dto);
- } else if (resourceType.equals("symptom")) {
- result = selectSymptomDataList(dto);
- } else if (resourceType.equals("vitalSign")) {
- //String[] strAr = {"temperature", "bloodPressure", "bloodSugar", "oxygenSaturation", "pulseRate"};
- // result = selectVitalSign(dto);
- } else {
- object.put("error", "invalidResourceType");
- message = "invalidResourceType";
- result = object.toString();
- }
- }
-
- } else {
- object.put("error", "expireToken");
- message = "expireToken";
- result = object.toString();
- }
- } else {
- object.put("error", "invalidParameters");
- message = "invalidParameters";
- result = object.toString();
- }
-
- } catch (Exception e) {
- object.put("error", "invalidParameters");
- message = "invalidParameters";
- result = object.toString();
- }
- }
-
- } else {
- object.put("error", "emptyToken");
- message = "emptyToken";
- result = object.toString();
- }
-
- if (message.equals("")) {
- message = "success";
- }
-
- return result;
- }
-
- //@RequestMapping(value="/patientList" , method = RequestMethod.POST)
- private String selectHLPatientList(HlRequestDTO dto) {
- List<PatientDTO> list = service.selectHLPatientList(dto);
- JSONArray array = new JSONArray();
-
- for (int i = 0; i < list.size(); i ++) {
- LinkedHashMap<String, Object> object = new LinkedHashMap<>();
- String patientNumber = list.get(i).getPatientNumber();
- String patientName = list.get(i).getPatientName();
- String gender = list.get(i).getGender();
- String wardNumber = list.get(i).getWardNumber();
- String roomNumber = list.get(i).getRoomNumber();
- String finalClinicDate = list.get(i).getFinamClinicDate();
- String hospitalizationDate = list.get(i).getHospitalizationDate();
- String state = list.get(i).getState();
- int centerCode = list.get(i).getCenterCode();
- String jumin = list.get(i).getJumin();
- String patientPhone = list.get(i).getPatientPhone();
- String guardianPhone = list.get(i).getGuardianPhone();
- String symptomStartDate = list.get(i).getSymptomStartDate();
- String confirmationDate = list.get(i).getConfirmationDate();
- String disisolationDate = list.get(i).getDisisolationDate();
- String basalDiseaseYn = list.get(i).getBasalDiseaseYn();
- String drugYn = list.get(i).getDrugYn();
- String drugContent = list.get(i).getDrugContent();
- String pregnancyStatus = list.get(i).getPregnancyStatus();
- String pregnancyWeek = list.get(i).getPregnancyWeek();
- String managerId = list.get(i).getManagerId();
- String expectedDischargeDate = list.get(i).getExpectedDischargeDate();
-
- object.put("resourceType", "patientInfoList");
- object.put("patinetId", patientNumber);
- object.put("patientName", patientName);
- object.put("gender", gender);
- object.put("wardNumber", wardNumber);
- object.put("roomNumber", roomNumber);
- object.put("state", state);
- object.put("centerCode", centerCode);
- object.put("birthDate", jumin);
- object.put("patientPhone", patientPhone);
- object.put("guardianPhone", guardianPhone);
- object.put("finalClinicDate", finalClinicDate);
- object.put("hospitalizationDate", hospitalizationDate);
- object.put("symptomDate", symptomStartDate);
- object.put("confirmationDate", confirmationDate);
- object.put("disisolationDate", disisolationDate);
- object.put("dischargeDate", expectedDischargeDate);
- object.put("basalDiseaseYn", basalDiseaseYn);
- object.put("drugYn", drugYn);
- object.put("drugContent", drugContent);
- object.put("pregnancyStatus", pregnancyStatus);
- object.put("pregnancyWeek", pregnancyWeek);
- object.put("doctorId", managerId);
-
- String jsonText = JSONValue.toJSONString(object);
- array.put(jsonText);
- }
-
- return array.toString();
- }
-
- private String selectPhrData(HlRequestDTO dto) {
- String resourceType = dto.getResourceType();
-
- List<ApiPhrResponseDTO> list = service.selectPhrData(dto);
- JSONArray array = new JSONArray();
-
- for (int i = 0; i < list.size(); i++) {
- LinkedHashMap<String, Object> object = new LinkedHashMap<>();
- String patientNumber = list.get(i).getPatientNumber();
- String patientName = list.get(i).getPatientName();
- String patientPhone = list.get(i).getPatientPhone();
- String jumin = list.get(i).getJumin();
- String recordedByName = list.get(i).getRecordedByName();
- String recordedById = list.get(i).getRecordedById();
- String recordedDate = list.get(i).getRecordedDate();
- String createDate = list.get(i).getCreateDate();
- String phrValue1 = list.get(i).getValueType1();
- String phrValue2 = list.get(i).getValueType2();
-
- object.put("resourceType", resourceType);
- object.put("patinetId", patientNumber);
- object.put("patientName", patientName);
- object.put("patientPhone", patientPhone);
- object.put("birthDate", jumin);
- if (resourceType.equals("bloodPressure")) {
- object.put("bloodSbp", phrValue1);
- object.put("bloodDbp", phrValue2);
- } else {
- object.put(resourceType, phrValue1);
- }
- object.put("recordedByName", recordedByName);
- object.put("recordedById", recordedById);
- object.put("recodedDate", recordedDate);
- object.put("createDate", createDate);
-
- String jsonText = JSONValue.toJSONString(object);
- array.put(jsonText);
- }
-
-
- return array.toString();
- }
-
- private String selectClinicMemoList(HlRequestDTO dto) {
- List<ApiPhrResponseDTO> list = service.selectClinicMemo(dto);
- JSONArray array = new JSONArray();
-
- String resourceType = dto.getResourceType();
- for (int i = 0; i < list.size(); i++) {
- LinkedHashMap<String, Object> object = new LinkedHashMap<>();
- String patientNumber = list.get(i).getPatientNumber();
- String patientName = list.get(i).getPatientName();
- String patientPhone = list.get(i).getPatientPhone();
- String jumin = list.get(i).getJumin();
- String clinicMemo = list.get(i).getValueType1();
- String recordedByName = list.get(i).getRecordedByName();
- String recordedById = list.get(i).getRecordedById();
- String createDate = list.get(i).getCreateDate();
-
- object.put("resourceType", resourceType);
- object.put("patinetId", patientNumber);
- object.put("patientName", patientName);
- object.put("patientPhone", patientPhone);
- object.put("birthDate", jumin);
- object.put("clinicMemo", clinicMemo);
- object.put("recordedByName", recordedByName);
- object.put("recordedById", recordedById);
- object.put("createDate", createDate);
-
- String jsonText = JSONValue.toJSONString(object);
- array.put(jsonText);
- }
-
- return array.toString();
- }
-
- private String selectMunjinDataList(HlRequestDTO dto) {
- String resourceType = dto.getResourceType();
- List<PatientDTO> list = service.selectMunjinDataList(dto);
- JSONArray array = new JSONArray();
-
- for (int i = 0; i < list.size(); i++) {
- LinkedHashMap<String, Object> object = new LinkedHashMap<>();
- String patientNumber = list.get(i).getPatientNumber();
- String patientName = list.get(i).getPatientName();
- String patientPhone = list.get(i).getPatientPhone();
- String jumin = list.get(i).getJumin();
- String feverCheck = list.get(i).getFeverCheck();
- String coughCheck = list.get(i).getCoughCheck();
- String colic = list.get(i).getColic();
- String coldFitCheck = list.get(i).getColdFitCheck();
- String sputumCheck = list.get(i).getSputumCheck();
- String ocinCheck = list.get(i).getOcinCheck();
- String feverRight = list.get(i).getFeverRight();
- String feverLeft = list.get(i).getFeverLeft();
- String fatigueCheck = list.get(i).getFatigueCheck();
- String etcCheck = list.get(i).getEtcCheck();
- String etcContent = list.get(i).getEtcContent();
- String chestPain = list.get(i).getChestPain();
- String noseCheck = list.get(i).getNoseCheck();
- String vomitingCheck = list.get(i).getVomitingCheck();
- String musclePain = list.get(i).getMusclePainCheck();
- String soreThroatCheck = list.get(i).getSoreThroatCheck();
- String diarrheaCheck = list.get(i).getDiarrheaCheck();
- String headacheCheck = list.get(i).getHeadacheCheck();
- String dyspenaCheck = list.get(i).getDyspneaCheck();
- String pulseRate = list.get(i).getPulseRate();
- String respirationRate = list.get(i).getRespirationRate();
- String bloodPressureLevel = list.get(i).getBloodPressureLevel();
- String oxygenSaturatio = list.get(i).getOxygenSaturation();
-
- object.put("resourceType", resourceType);
- object.put("patinetId", patientNumber);
- object.put("patientName", patientName);
- object.put("patientPhone", patientPhone);
- object.put("birthDate", jumin);
-
- object.put("feverCheck", feverCheck);
- object.put("coughCheck", coughCheck);
- object.put("colic", colic);
- object.put("coldFitCheck", coldFitCheck);
- object.put("sputumCheck", sputumCheck);
- object.put("ocinCheck", ocinCheck);
- object.put("feverRight", feverRight);
- object.put("feverLeft", feverLeft);
- object.put("fatigueCheck", fatigueCheck);
- object.put("etcCheck", etcCheck);
- object.put("etcContent", etcContent);
- object.put("chestPain", chestPain);
- object.put("noseCheck", noseCheck);
- object.put("vomitingCheck", vomitingCheck);
- object.put("musclePain", musclePain);
- object.put("soreThroatCheck", soreThroatCheck);
- object.put("diarrheaCheck", diarrheaCheck);
- object.put("headacheCheck", headacheCheck);
- object.put("dyspenaCheck", dyspenaCheck);
- object.put("pulseRate", pulseRate);
- object.put("respirationRate", respirationRate);
- object.put("bloodPressureLevel", bloodPressureLevel);
- object.put("oxygenSaturation", oxygenSaturatio);
-
- String jsonText = JSONValue.toJSONString(object);
- array.put(jsonText);
- }
-
- return array.toString();
- }
-
- private String selectSymptomDataList(HlRequestDTO dto) {
- String resourceType = dto.getResourceType();
- List<ApiSymptomDTO> list = service.selectSymptomDataList(dto);
- JSONArray array = new JSONArray();
-
- for (int i = 0; i < list.size(); i++) {
- LinkedHashMap<String, Object> object = new LinkedHashMap<>();
- String patientNumber = list.get(i).getPatientNumber();
- String patientName = list.get(i).getPatientName();
- String patientPhone = list.get(i).getPatientPhone();
- String jumin = list.get(i).getJumin();
- String coughCheck = list.get(i).getCoughCheck();
- String dyspneaCheck = list.get(i).getDyspneaCheck();
- String coldFitCheck = list.get(i).getColdFitCheck();
- String musclePainCheck = list.get(i).getMusclePainCheck();
- String headacheCheck = list.get(i).getHeadacheCheck();
- String soreThroatCheck = list.get(i).getSoreThroatCheck();
- String smellPlateCheck = list.get(i).getSmellPlateCheck();
- String fatigueCheck = list.get(i).getFatigueCheck();
- String appetiteLossCheck = list.get(i).getAppetiteLossCheck();
- String sputumCheck = list.get(i).getSputumCheck();
- String ocinCheck = list.get(i).getOcinCheck();
- String vomitingCheck = list.get(i).getVomitingCheck();
- String diarrheaCheck = list.get(i).getDiarrheaCheck();
- String dizzinessCheck = list.get(i).getDizzinessCheck();
- String noseCheck = list.get(i).getNoseCheck();
- String etcCheck = list.get(i).getEtcCheck();
- String etcContent = list.get(i).getEtcContent();
- String recordedById = list.get(i).getRecordedById();
- String recordedByName = list.get(i).getRecordedByName();
- String recordedByDate = list.get(i).getRecordedByDate();
- String createDate = list.get(i).getCreateDate();
-
- object.put("resourceType", resourceType);
- object.put("patinetId", patientNumber);
- object.put("patientName", patientName);
- object.put("patientPhone", patientPhone);
- object.put("birthDate", jumin);
-
- object.put("coughCheck", coughCheck);
- object.put("dyspenaCheck", dyspneaCheck);
- object.put("coldFitCheck", coldFitCheck);
- object.put("musclePain", musclePainCheck);
- object.put("headacheCheck", headacheCheck);
- object.put("soreThroatCheck", soreThroatCheck);
- object.put("smellPlateCheck", smellPlateCheck);
- object.put("fatigueCheck", fatigueCheck);
- object.put("appetiteLossCheck", appetiteLossCheck);
- object.put("sputumCheck", sputumCheck);
- object.put("ocinCheck", ocinCheck);
- object.put("vomitingCheck", vomitingCheck);
- object.put("diarrheaCheck", diarrheaCheck);
- object.put("dizzinessCheck", dizzinessCheck);
- object.put("noseCheck", noseCheck);
- object.put("etcCheck", etcCheck);
- object.put("etcContent", etcContent);
- object.put("recordedById", recordedById);
- object.put("recordedByName", recordedByName);
- object.put("recordedByDate", recordedByDate);
- object.put("createDate", createDate);
-
- String jsonText = JSONValue.toJSONString(object);
- array.put(jsonText);
- }
-
- return array.toString();
- }
-
- private String selectVitalSign(HlRequestDTO dto) {
- dto.setCenterCode(63);
- List<ApiPhrResponseDTO> patientList = service.selectPatientInfoList(dto);
- JSONArray array = new JSONArray();
-
- for (int i = 0; i < patientList.size(); i++) {
- LinkedHashMap<String, Object> object = new LinkedHashMap<>();
- int patientIdx = patientList.get(i).getPatientIdx();
- String patientId = patientList.get(i).getPatientNumber();
- String patientName = patientList.get(i).getPatientName();
- String patientPhone = patientList.get(i).getPatientPhone();
- String jumin = patientList.get(i).getJumin();
- List<ApiPhrResponseDTO> phrList = service.selectPatientPhrData(patientIdx);
-
- object.put("patinetId", patientId);
- object.put("patientName", patientName);
- object.put("patientPhone", patientPhone);
- object.put("birthDate", jumin);
- for (int j = 0; j < phrList.size(); j++ ) {
- LinkedHashMap<String, Object> object2 = new LinkedHashMap<>();
- String phrType = phrList.get(j).getPhrType();
- String valueType1 = phrList.get(j).getValueType1();
- String valueType2 = phrList.get(j).getValueType2();
- String recordedByName = phrList.get(j).getRecordedByName();
- String recordedById = phrList.get(j).getRecordedById();
- String createDate = phrList.get(j).getCreateDate();
-
- if (phrType.equals("bloodPressure")) {
- object2.put("bloodSbp", valueType1);
- object2.put("bloodDbp", valueType2);
- } else {
- object2.put(phrType, valueType1);
- }
-
- object2.put("recordedByName", recordedByName);
- object2.put("recordedById", recordedById);
- object2.put("createDate", createDate);
- object.put(phrType, object2);
- }
- String jsonText = JSONValue.toJSONString(object);
- array.put(jsonText);
- }
-
- return array.toString();
- }
-
- }
|