瀏覽代碼

기왕력 이력 조회 및 맵핑 기능 추가

songjunegeun 4 年之前
父節點
當前提交
75cb124403

+ 1 - 26
app/src/main/java/com/dbs/mplus/knuh/MainActivity.java

@@ -20,6 +20,7 @@ import com.dbs.mplus.knuh.httpTask.CallBack;
 import com.dbs.mplus.knuh.httpTask.HttpRunnable;
 import com.dbs.mplus.knuh.httpTask.HttpSoapConnection;
 import com.dbs.mplus.knuh.httpTask.SoapParser;
+import com.dbs.mplus.knuh.model.DataPiexVO;
 import com.dbs.mplus.knuh.util.ConsentConfig;
 import com.dbs.mplus.knuh.util.Util;
 import com.gun0912.tedpermission.PermissionListener;
@@ -46,32 +47,6 @@ public class MainActivity extends AppCompatActivity {
     setContentView(R.layout.activity_main);
 
     init();
-//    test();
-  }
-
-  private void test() {
-    //indd=20210605, instcd=031, pid=3386674, cretno=1, formCd=1100010234
-    String result = "";
-    HashMap<String, String> mData = new HashMap<String, String>();
-//    mData.put("flag", "A01");
-    mData.put("instcd", BuildConfig.INST_CD);
-    mData.put("pid", "3386674");
-    mData.put("indd", "20210605");
-    mData.put("cretno", "1");
-    mData.put("formCd", "1100010234");
-    Log.e(TAG, "mData -- > " + mData);
-
-    HttpSoapConnection connection = new HttpSoapConnection(ConsentConfig.HOST_HOSPITAL, ConsentConfig.GET_EMR_DATA_LIST, mData);
-    try {
-      SoapObject object = connection.execute().get();
-      HashMap<String, String> map = SoapParser.getEmrDataList(object);
-      Log.e(TAG, "map -- > " + map);
-
-    } catch (ExecutionException e) {
-      e.printStackTrace();
-    } catch (InterruptedException e) {
-      e.printStackTrace();
-    }
   }
 
   private void init() {

+ 2 - 2
app/src/main/java/com/dbs/mplus/knuh/activity/LoginActivity.java

@@ -108,8 +108,8 @@ public class LoginActivity extends AppCompatActivity {
 //    etId.setText("98130");
 //    etPasswd.setText("a56515651!");
 
-    etId.setText("EMR");
-    etPasswd.setText("wjstkstlf1!");
+//    etId.setText("EMR");
+//    etPasswd.setText("wjstkstlf1!");
   }
 
   private void setEvent() {

+ 2 - 0
app/src/main/java/com/dbs/mplus/knuh/consent/ConsentCreateParam.java

@@ -8,6 +8,7 @@ import com.dbs.mplus.knuh.activity.ConsentActivity;
 import com.dbs.mplus.knuh.httpTask.HttpSoapConnection;
 import com.dbs.mplus.knuh.httpTask.SoapParser;
 import com.dbs.mplus.knuh.model.ConsentFormListVO;
+import com.dbs.mplus.knuh.model.DataPiexVO;
 import com.dbs.mplus.knuh.model.PatientInfoVO;
 import com.dbs.mplus.knuh.model.UserVO;
 import com.dbs.mplus.knuh.util.ConsentConfig;
@@ -754,4 +755,5 @@ public class ConsentCreateParam {
     }
     return resultMap;
   }
+
 }

+ 74 - 4
app/src/main/java/com/dbs/mplus/knuh/consent/ConsentEvent.java

@@ -3,6 +3,7 @@ package com.dbs.mplus.knuh.consent;
 import android.content.Context;
 import android.content.Intent;
 import android.util.Log;
+import android.view.View;
 
 import com.dbs.mplus.knuh.BuildConfig;
 import com.dbs.mplus.knuh.R;
@@ -13,6 +14,7 @@ import com.dbs.mplus.knuh.httpTask.HttpSoapConnection;
 import com.dbs.mplus.knuh.httpTask.SoapParser;
 import com.dbs.mplus.knuh.model.ConsentFormListVO;
 import com.dbs.mplus.knuh.model.ConsentImageVO;
+import com.dbs.mplus.knuh.model.DataPiexVO;
 import com.dbs.mplus.knuh.model.PatientInfoVO;
 import com.dbs.mplus.knuh.util.ConsentConfig;
 import com.dbs.mplus.knuh.util.Util;
@@ -139,16 +141,52 @@ public class ConsentEvent {
                 instance.showSingButtonDialog(mContext.getString(R.string.writeConsnet));
               } else {
                 ConsentCreateParam consentCreateParam = new ConsentCreateParam(mContext, userDrFlag, consentState, consentStateEng);
-                HashMap<String, String> globalParam = consentCreateParam.setGlobalParam(patientInfoVO, consentMstRid, consentFormListVO);
+                final HashMap<String, String> globalParam = consentCreateParam.setGlobalParam(patientInfoVO, consentMstRid, consentFormListVO);
                 ArrayList<HashMap<String, String>> mapArrayList = consentCreateParam.setFormParam(consentMstRid, formRid, guid, formPrntNm, formCd, linkCd, ocrTag, drOnly, formName);
 
                 Util.deleteEpt();
 
-                HashMap map = new HashMap();
+                final HashMap map = new HashMap();
                 map.put("globalParam", globalParam);
                 map.put("formListParam", mapArrayList);
-                ConsentFacade consentFacade = new ConsentFacade(mContext, consentStateEng);
-                consentFacade.startConsent(map, certPass, apiType);
+                final ConsentFacade consentFacade = new ConsentFacade(mContext, consentStateEng);
+
+                if (apiType.equals("")) {
+                  final ArrayList<DataPiexVO> dataPiexVOArrayList = getDataPiex(patientInfoVO.getPid(), patientInfoVO.getInDd());
+                  final int dataPiexSize = dataPiexVOArrayList.size();
+                  if (dataPiexSize > 0) {
+                    String message = String.format(instance.getString(R.string.piexMessage), dataPiexVOArrayList.get(0).getCreateDateTime());
+                    instance.csAlert.show();
+                    instance.csAlert.setContent(message, "");
+                    instance.csAlert.btnConfirm.setText(instance.getString(R.string.yes));
+                    instance.csAlert.btnCancel.setText(instance.getString(R.string.no));
+                    instance.csAlert.btnConfirm.setOnClickListener(new View.OnClickListener() {
+                      @Override
+                      public void onClick(View v) {
+                        instance.csAlert.dismiss();
+                        for (int i = 0; i < dataPiexSize; i++) {
+                          String connParm = dataPiexVOArrayList.get(i).getConnParm();
+                          String itemVal  = dataPiexVOArrayList.get(i).getItemVal();
+
+                          globalParam.put(connParm, itemVal);
+                          consentFacade.startConsent(map, certPass, apiType);
+                        }
+                      }
+                    });
+                    instance.csAlert.btnCancel.setOnClickListener(new View.OnClickListener() {
+                      @Override
+                      public void onClick(View v) {
+                        instance.csAlert.dismiss();
+                        consentFacade.startConsent(map, certPass, apiType);
+                      }
+                    });
+                  } else {
+                    consentFacade.startConsent(map, certPass, apiType);
+                  }
+                } else {
+                  consentFacade.startConsent(map, certPass, apiType);
+                }
+
               }
 
             }
@@ -180,4 +218,36 @@ public class ConsentEvent {
     }
   }
 
+
+  /**
+   * 현병력 맵핑
+   * @author jksong
+   * @since 2021/09/03 9:25 오전
+   * @param
+   **/
+  private ArrayList<DataPiexVO> getDataPiex(String pid, String clnDate) {
+    ArrayList<DataPiexVO> result = new ArrayList<>();
+    HashMap<String, String> mData = new HashMap<String, String>();
+    mData.put("instCd", BuildConfig.INST_CD);
+    mData.put("pid", pid);
+    mData.put("clnDate", clnDate);
+    Log.e(TAG, "getDataPiex mData -- > " + mData);
+
+    HttpSoapConnection connection = new HttpSoapConnection(ConsentConfig.HOST_HOSPITAL, ConsentConfig.GET_DATA_PIEX, mData);
+    try {
+      SoapObject object = connection.execute().get();
+      Log.e(TAG, "getDataPiex object -- > " + object);
+
+      result = SoapParser.getDataPiex(object);
+      Log.e(TAG, "getDataPiex result -- > " + result.size());
+
+    } catch (ExecutionException e) {
+      e.printStackTrace();
+    } catch (InterruptedException e) {
+      e.printStackTrace();
+    }
+
+    return result;
+  }
+
 }

+ 48 - 1
app/src/main/java/com/dbs/mplus/knuh/httpTask/SoapParser.java

@@ -1,8 +1,11 @@
 package com.dbs.mplus.knuh.httpTask;
 
+import android.util.Log;
+
 import com.dbs.mplus.knuh.model.CategoryVO;
 import com.dbs.mplus.knuh.model.ConsentFormListVO;
 import com.dbs.mplus.knuh.model.ConsentImageVO;
+import com.dbs.mplus.knuh.model.DataPiexVO;
 import com.dbs.mplus.knuh.model.DeptListVO;
 import com.dbs.mplus.knuh.model.DoctorListVO;
 import com.dbs.mplus.knuh.model.PatientInfoVO;
@@ -610,7 +613,6 @@ public class SoapParser {
   }
 
   public static HashMap<String, String> getEmrDataList(SoapObject object) {
-//    ArrayList<EmrDataListVO> result = new ArrayList<>();
     HashMap<String, String> result = new HashMap<>();
 
     int total = 0;
@@ -642,5 +644,50 @@ public class SoapParser {
     }
     return result;
   }
+
+  public static ArrayList<DataPiexVO> getDataPiex(SoapObject object) {
+    Log.e(TAG, "getDataPiex -- > " + object);
+    ArrayList<DataPiexVO> result = new ArrayList<>();
+    int total = 0;
+    if (object != null) {
+      total = object.getPropertyCount();
+      if(total == 1) {
+        if(object.getProperty(0) == null) {
+          total = 0;
+        }
+      }
+    }
+
+    if(total == 0) {
+    } else {
+      for (int i = 0; i < total; i++) {
+        SoapObject so = (SoapObject) object.getProperty(i);
+
+        String pid            = so.getProperty("pid").toString().trim();
+        String clnDate        = so.getProperty("clnDate").toString().trim();
+        String itemCd         = so.getProperty("itemCd").toString().trim();
+        String itemVal        = so.getProperty("itemVal").toString().trim();
+        String degnCd         = so.getProperty("degnCd").toString().trim();
+        String itemNm         = so.getProperty("itemNm").toString().trim();
+        String saveParm       = so.getProperty("saveParm").toString().trim();
+        String connParm       = so.getProperty("connParm").toString().trim();
+        String createDateTime = so.getProperty("createDateTime").toString().trim();
+
+        pid = pid.equals(ConsentConfig.RETURN_NULL) ? "" : pid;
+        clnDate = clnDate.equals(ConsentConfig.RETURN_NULL) ? "" : clnDate;
+        itemCd = itemCd.equals(ConsentConfig.RETURN_NULL) ? "" : itemCd;
+        itemVal = itemVal.equals(ConsentConfig.RETURN_NULL) ? "" : itemVal;
+        degnCd = degnCd.equals(ConsentConfig.RETURN_NULL) ? "" : degnCd;
+        itemNm = itemNm.equals(ConsentConfig.RETURN_NULL) ? "" : itemNm;
+        saveParm = saveParm.equals(ConsentConfig.RETURN_NULL) ? "" : saveParm;
+        connParm = connParm.equals(ConsentConfig.RETURN_NULL) ? "" : connParm;
+        createDateTime = createDateTime.equals(ConsentConfig.RETURN_NULL) ? "" : createDateTime;
+
+        result.add(new DataPiexVO(pid, clnDate, itemCd, itemVal, degnCd, itemNm, saveParm, connParm, createDateTime));
+      }
+    }
+
+    return result;
+  }
 }
 

+ 99 - 0
app/src/main/java/com/dbs/mplus/knuh/model/DataPiexVO.java

@@ -0,0 +1,99 @@
+package com.dbs.mplus.knuh.model;
+
+import java.io.Serializable;
+
+public class DataPiexVO implements Serializable {
+  private String pid            = "";
+  private String clnDate        = "";
+  private String itemCd         = "";
+  private String itemVal        = "";
+  private String degnCd         = "";
+  private String itemNm         = "";
+  private String saveParm       = "";
+  private String connParm       = "";
+  private String createDateTime = "";
+
+  public DataPiexVO(String pid, String clnDate, String itemCd, String itemVal, String degnCd, String itemNm, String saveParm, String connParm, String createDateTime) {
+    this.pid = pid;
+    this.clnDate = clnDate;
+    this.itemCd = itemCd;
+    this.itemVal = itemVal;
+    this.degnCd = degnCd;
+    this.itemNm = itemNm;
+    this.saveParm = saveParm;
+    this.connParm = connParm;
+    this.createDateTime = createDateTime;
+  }
+
+  public String getPid() {
+    return pid;
+  }
+
+  public void setPid(String pid) {
+    this.pid = pid;
+  }
+
+  public String getClnDate() {
+    return clnDate;
+  }
+
+  public void setClnDate(String clnDate) {
+    this.clnDate = clnDate;
+  }
+
+  public String getItemCd() {
+    return itemCd;
+  }
+
+  public void setItemCd(String itemCd) {
+    this.itemCd = itemCd;
+  }
+
+  public String getItemVal() {
+    return itemVal;
+  }
+
+  public void setItemVal(String itemVal) {
+    this.itemVal = itemVal;
+  }
+
+  public String getDegnCd() {
+    return degnCd;
+  }
+
+  public void setDegnCd(String degnCd) {
+    this.degnCd = degnCd;
+  }
+
+  public String getItemNm() {
+    return itemNm;
+  }
+
+  public void setItemNm(String itemNm) {
+    this.itemNm = itemNm;
+  }
+
+  public String getSaveParm() {
+    return saveParm;
+  }
+
+  public void setSaveParm(String saveParm) {
+    this.saveParm = saveParm;
+  }
+
+  public String getConnParm() {
+    return connParm;
+  }
+
+  public void setConnParm(String connParm) {
+    this.connParm = connParm;
+  }
+
+  public String getCreateDateTime() {
+    return createDateTime;
+  }
+
+  public void setCreateDateTime(String createDateTime) {
+    this.createDateTime = createDateTime;
+  }
+}

+ 1 - 0
app/src/main/java/com/dbs/mplus/knuh/util/ConsentConfig.java

@@ -28,6 +28,7 @@ public class ConsentConfig {
   public static final String SET_SIGN_IMAGE          = "setSignImage";        // 사용자 서명이미지 설정
   public static final String GET_EMR_DATA_LIST       = "getEmrDataList";
   public static final String GET_PATIENT_SAFETY_MSG  = "checkPatientSafetyMessage"; // 동명이인 주의 메시지
+  public static final String GET_DATA_PIEX           = "getDataPiex";
 
   public static final String HOST_CONSENT = BuildConfig.CONSENT_SERVER_URL + "ConsentSvc.asmx";
   public static final String GET_CONSENT_CATEGORYY   = "GetCategoryForDropdown";  // 동의서 찾기시 카테고리 리스트

+ 2 - 2
app/src/main/res/layout/activity_login.xml

@@ -45,7 +45,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginLeft="10dp"
-
+                android:inputType="textFilter|textNoSuggestions"
                 android:layout_marginRight="10dp"
                 android:layout_marginBottom="10dp"
                 android:layout_weight="1"
@@ -90,7 +90,7 @@
                     android:layout_weight="3"
                     android:background="@drawable/shape"
                     android:hint="@string/certPwdHint"
-                    android:inputType="textPassword"
+                    android:inputType="textPassword|textNoSuggestions"
                     android:paddingLeft="10dp"
                     android:paddingRight="10dp"
                     android:singleLine="true"

+ 4 - 0
app/src/main/res/values/strings.xml

@@ -172,6 +172,10 @@
 
     <string name="opList">수술 리스트</string>
 
+    <string name="piexMessage">%1s \n에 작성된 환자의 기왕력 정보가 존재합니다. \n사용하시겠습니까?</string>
+    <string name="yes">예</string>
+    <string name="no">아니오</string>
+
     <!-- 전자 서명이미지 수정 및 추가에 대한 string -->
     <string name="updateSign">서명 이미지</string>
     <string name="signDialog">서명 이미지 설정</string>