#region Copyright © 2015 CLIPSOFT Co.,Ltd. All Rights Reserved.
//
// All rights are reserved. Reproduction or transmission in whole or in part, 
// in any form or by any means, electronic, mechanical or otherwise, is 
// prohibited without the prior written consent of the copyright owner.
//
// Filename:IConsentMain.cs
//
#endregion
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CLIP.eForm.Consent.UI;

namespace CLIP.eForm.Consent.UI {
  /// <summary>
  /// ConsentMain 인터페이스
  /// </summary>
  /// <remarks>
  /// <p>[설계자]</p>
  /// <p>  클립소프트 연구소 홍지철 (jchong@clipsoft.co.kr)</p>
  /// <p>[원본 작성자]</p>
  /// <p>  클립소프트 기술부 이창훈 (chlee@clipsoft.co.kr)</p>
  /// <p>[수정 작성자]</p>
  /// <p>  클립소프트 기술부 이인희</p>
  /// <p>----------------------------------------------------------------------------------------</p>
  /// <p>[HISTORY]</p>
  /// <p> 2015-07-30 : 최초작성</p>
  /// <p>----------------------------------------------------------------------------------------</p>
  /// </remarks>  
  public interface IConsentMain {
    ConsentCommandCtrlBase ConsentCommandCtrl { get; }
    ConsentListCtrlBase ConsentListCtrl { get; }
    PatientInfoCtrlBase PatientInfoCtrl { get; }
    PatientListCtrlBase PatientListCtrl { get; }

    Dictionary<string, string> ConsentExecuteInfo { get; set; }
    Dictionary<string, string> PluginExecuteInfo { get; set; }
    bool UseFingerScan { get; set; }
    bool viewStatus { get; }
    bool IsComplete();

    void changeInDd(string inDd);

    void initParams();
    void PreviewConsent(string fos);
    void ClearConsent();
    void RunConsentDualView();
    void PrintConsentDocument(string fos);
    void PrintDirect(string fos);
    void MoveFirstPage();
    void MovePrevPage();
    void MoveNextPage();
    void MoveLastPage();
    void DeleteAttach();
    void InsertAttach();
    void Save();
    /// <summary>
    /// eFormViewerCtrl 컨트롤의 TempSave 이벤트를 호출
    /// </summary>
    void TempSave();
    int GetCurrentPageIndex();
    int GetTotalPageCount();
    void MoveToPageIndex(int pageIndex);
    void SetZoomRate(string zoomRate);
    void EnableDrawing(bool enable);
    bool IsDrawMode();
    void RemoveAllDrawing();
    void UndoDrawing();
    void RedoDrawing();
    void ConfigDrawingPen();
    void SetFingerScanValue(string controlId, string base64Image);
    void SetSignatureImage(string controlId, string base64Image);
    void SetConsentListSplitPanelVisibility(bool visibility);
    void SetPatientListSplitPanelVisibility(bool visibility);
    void CloseSignaturePopup(string controlId);
    void SetRunOption(string optionKey, string optionValue);
    void TerminateConsentMain();
    void ReviewConsent();
    void CloseDualViewer();
    CLIP.eForm.ImageView.ImageViewCtrl GetImageViewerCtrl();

    void UIControlsRefeash(string visitType);

    void SetConsentUserInfo(string pInstCd, string pUserId, string DutPlceCd);

    void ClearPreviewConsent(bool pDoInit);

    void setPageCnt(int pageCnt);

    int getPageCnt();

    void setPrintButton(Boolean flag);

    bool getPrintButton();

    ConsentSvcRef.ConsentSvcSoapClient getConsentWebService();
    HospitalSvcRef.HospitalSvcSoapClient getHospitalWebService();

    event EventHandler OnLoadPartControls;
    event EventHandler OnResizeReviewConsent;
    event EventHandler OnVisibleEFormControl;
    event EventHandler OnInvisibleEFormControl;

    void preParamClean();
    void ReInitializeViewer();
    bool printSaveStatus { get; set; }
    int multiPrintPlanCnt { get; set; }
    int multiPrintExecCnt { get; set; }

    int agentCallPrintCnt { get; set; }

    void Parent_Disposed();
    bool saveClickPoint { get; set; }

    bool checkAutoPrint { get; set; }//입실저장 자동출력을 제외한 찾아서 출력은 반납데이터 만들기위해 추가

    void SetPatientInfo();

    bool checkOperationDocument(string formCd);

    void setOpPatientSelected(bool value);
    void SetConsentUserInfo(string pInstCd, string pUserId, string DutPlceCd, string temp);

    List<Dictionary<string, object>> multiParams { get; set; }

    void showNextPreview();
  }
}
