egGate 사용자 메뉴얼 - 환자예약을 어디서든 조회 > 자유게시판

본문 바로가기
사이트 내 전체검색

자유게시판

egGate 사용자 메뉴얼 - 환자예약을 어디서든 조회

페이지 정보

profile_image
작성자 dranon
댓글 0건 조회 662회 작성일 24-04-25 16:36

본문

# 이 프로그램은 이지스 전자챠트를 만드는 이지스헬스케어와는 무관합니다.


:: 프로그램이 만들어 진 배경


환자를 예약제로 진료하는 경우, 환자가 많지 않아서 아침에 다소 지각을 하여도 되는 경우, 대체 몇 시까지 가면 되는 건가를 아침에 알아보려면 병원에 전화를 하면 되겠지만, 약간 미안합니다. 지각하는 주제에 그런 거 까지 물어 보다뇨... 또는, 당일 전날에 집에 있다보면 문득 내일은 환자가 얼마나 있나를 알아보고 싶을 때가 있습니다. 집에서 원격으로 원내 PC를 켜서 원격으로 보면 되긴 하지만, 매우 번거롭습니다. 환자가 너무 많아서 매일 문열자 마자 진료를 하시거나, 예약제로 진료하지 않는 경우는 전혀 필요하지 않은 프로그램입니다.



:: 프로그램의 기능


egGate(c) 는 이지스전자챠트의 의사별 예약현황을 인터넷이 연결된 어느 곳에서든 볼 수 있게 해주는 중간역할을 하는 프로그램 입니다. 이지스 전자챠트에서 쓰는 데이타베이스인 Postgresql 을 연결하여 예약 정보를 정리하여 웹상에서 볼 수 있게 만듭니다. 웹페이지를 열수 있으면 어디서든, 어떤 기기든 가능하기 때문에 안드로이드든, 아이폰이든, PC든 다 가능 합니다.


Postgresql 서버를 공유기의 포트포워딩 기능을 이용하여 직접 접속하면 사실 더 간단하게 해결할 수 있지만, 그렇게 되면 원내의 DB가 완전히 외부로 노출되는 위험성이 있습니다. 물론, 65535개에 달하는 포트 번호를 일일이 액세스 해 봐야 어느 포트가 DB서버로 연결되는지 알 수 있는 거지만, 하려고 한다면 못할 것이 없기 때문에 이런 식의 운용은 매우 위험합니다.


그래서, DB서버와 웹서버 사이에 중간역할을 하는 프로그램을 만들어 필요한 정보만 웹서버로 보내주는 프로그램을 만든 겁니다. 이렇게 되면 외부에서 예약정보를 원하는 곳은 이 egGate 프로그램으로 연결을 하고, 원내에 있는 egGate가 DB서버에 접속하면 되기 때문에 DB서버가 원외로 바로 노출되는 위험성을 차단할 수 있습니다.


v1.2.1 에서 추가: 

OFF탭에서 isHoliday.exe 프로그램과 함께 batch 파일에서 %ERRORLEVEL% 변수와 함께 공휴일인 경우를 판별할 수 있는 기능을 추가하였습니다. 출근 직전 일정한 시각에 자동으로 켜지게 설정된 PC가 공휴일에는 바로 꺼지게 하거나, 또는 특정 PC는 공휴일에도 꺼지지 않아야 할 경우에 사용할 수 있습니다.



:: 포트포워당(Port forwarding)


이 프로그램을 사용할려면 포트포워딩이 무슨 역할을 하는지 알아야 합니다.


561892a51d5db2cd348934aff8970155_1714030385_4646.png
 

위 화면은 원내 공유기의 포트포워드 설정 화면입니다. 사용자 규칙 eGgater에 외부포트 3077, 내부포트 29088, 내부 IP 192.168.90.56 으로 설정이 되어 있습니다. 이 경우, 외부에서 본 공유기의 3077 포트로 들어오는 패킷은 원내에 있는 192.168.90.56 의 29088 포트로 전달되는 겁니다. 


만일에, 내부포트를 Postgresql의 포트번호, 내부 IP를 DB가 운영되는 PC의 IP로 바꾸면 외부에서도 바로 Postgresql 을 접속할 수 있습니다. 


ipTime 공유기가 아니라도, 대부분의 공유기에는 포트포워딩 기능이 있으니 메뉴얼을 참조하시기 바랍니다.



:: DDNS(Dynamic Domain Name Service)


egGate를 쓰기 위해 하나 더 알아야 하는 것이 DDNS 서비스 입니다. 외부에서 원내에 있는 공유기까지 접속을 하려면 이쪽의 IP 주소를 알아야 하는데, 알다시피 대부분의 병원은 유동 IP를 사용합니다. 이 말은 병원의 대표 IP 주소가 때때로 바뀐다는 말입니다. 그래서 이 주소를 도메인 이름으로 접속할 수 있게 해 주는 것이 DDNS 입니다. ipTime 공유기에도 자체에서 제공하는 DDNS 서비스가 있는데, 이걸 써도 됩니다.


92da0069222e0750a347cd231db1ba51_1714046386_7459.png
 


위의 그림은 저희 집의 공유기에 DDNS 설정을 보여 줍니다. 현재 DDNS가 하나 설정되어 있는데, 위의 파란 박스에 가령 xyz 라고 넣고, 사용자 ID를 적당히 넣고 DDNS 등록을 하게 되면 본 공유기를 xyz.iptime.org 라는 주소로 접속을 할 수 있게 되고, 위에서 설명한 포트포워딩을 이용하여 적절한 설정이 있으면 내부에 있는 PC까지 접속을 할 수 있게 됩니다. 


공유기에 설정하는 것 외에도 noip.com, duckdns.org 같은 싸이트에서 제공하는 DDNS를 사용해도 됩니다.



:: 프로그램 설치


배포 파일 Setup.exe를 실행하여 프로그램을 설치 합니다. 설치되는 PC는 정보를 조회하는 순간에 켜져 있는 상태여야 합니다. 물론, Postgresql 서버도 조회하려는 시각에 켜져 있어야 합니다. 같은 PC에 설치해도 됩니다만, 권장은 각각 다른 PC에 설치하는 겁니다. 상시 켜져 있는 DB서버 외의 PC가 있다면 거기 설치하는 것이 보안면에서 가장 좋습니다.


제 경우 DB서버는 새벽 3시 경에 꺼지고, 오전 8시경에 다시 부팅되게 설정이 되어 있습니다. i3-4360T cpu를 쓰고 있어서, 켜져 있어도 전력 소모는50W 내외 입니다.  저는 DB서버에 설치했습니다.


aa77125b7a5f6a6d1a1f1a721d30d665_1714204963_6406.png


PG서버: 이지스 전자챠트의 DB, Postgresql 서버가 운영되는 PC의 IP 주소. 

내부포트: 앞에서 설명한 포트포워딩할 때의 내부 포트번호 입니다.

도움말: 클릭하면 현재의 페이지가 열립니다.

최소상태로시작: 체크되면 시작할 때 최소화된 상태로 시작합니다.


저장: 서버 IP주소나, 내부포트번호를 변경하면 [저장]하고 다시 실행하셔야 합니다.


좌 상부의 작은 []는 egGate 가 PG서버와 통신하여 정보를 처리할 때 빨간색으로 바뀝니다. 여기까지가 egGate 의 설정이고, 끝입니다.




:: 드라논 설정


실제 환자 정보를 웹에서 읽어 보려면 본 싸이트에서 설정을 해 줘야 합니다.


5a6c5e1c00734ddadd172a81b895568d_1714129107_2838.png
 

만든 계정의 개인정보 설정에서 egGate 설정 부분을 해 주셔야 합니다. 이전에 원내 공유기로의 DDNS를 예를 들어, xyz.iptime.org 라고 하고, 포트포워딩 설정에서 외부 포트를 3077 이라고 했다면, 이 곳에 xyz.iptime.org:3077 이라고 적습니다. 그리고 그 뒤에는 공백 한 칸을 두고, 의사들의 직원번호를 적어 줍니다. 통상 원장님이 혼자 일하면 원장님은 1번이니까 1을 적으면 되고, 부원장님이 계시다면 차례대로 ,로 분리하여 적어 줍니다. 1,7,20 이런 식이 될 것입니다. 각 번호들 사이에 공백은 두지 마시고 , 로만 분리하십시오.



5a6c5e1c00734ddadd172a81b895568d_1714129399_5989.png
 

왼쪽에 사원 번호가 있는데, 저 중에서 의사인 분들의 번호를 나열하면 됩니다. 본인 것만 보려면 본인 번호만 적으면 됩니다.



:: 예약 현황 보기


안드로이드폰에서 실행한 겁니다. 아이폰도 다를 게 없습니다. 크롬(또는 아무 브라우저)을 실행합니다. 크롬 바탕에 DRANON.DDNS.NET으로의 북마크가 있습니다. 크롬으로 dranon.ddn.net에 접속하면 아래 우측과 같이 모바일 접속화면이 뜹니다. 여기서, 좌상의 메뉴(≡ )를 클릭합니다.



 490998d795593d388b03f87825e5be20_1718549003_139.jpg 

 490998d795593d388b03f87825e5be20_1718549016_97.jpg 


 


메뉴를 클릭하면 아래와 같이 메뉴가 뜨고, 위에 로그인 버튼이 활성화 됩니다. egGate를 사용하려면 로그인을 해야 하니, 로그인 하면, 우측과 같이 메뉴 아래쪽에 egGate 배너가 뜹니다.



 490998d795593d388b03f87825e5be20_1718549047_4676.jpg 

 490998d795593d388b03f87825e5be20_1718549065_2973.jpg 


 


배너를 클릭하면 아래와 같이 날짜별 예약현황이 뜹니다. 오후 7시 이후에는 다음날 예약현황이 뜨고, 그 전에는 당일의 예약현황이 뜹니다. 담당의사를 설정에서 1 이외에 설정하였다면 담당의사를 바꿔서 볼 수 있습니다. 날짜를 클릭하면 날짜 선택용 달력이 뜨고, 날짜를 바꿀 수 있습니다. 담당의사 우측의 [닫기]를 클릭하면 화면이 닫히고 dranon 싸이트로 돌아갑니다.


당일 진료 끝난 후에 오후 7시 이전에 열면 예약환자가 없는 상태가 되겠습니다. 



 490998d795593d388b03f87825e5be20_1718549087_1471.jpg 

 490998d795593d388b03f87825e5be20_1718549096_5479.jpg 


 





:: OFF 탭


 


v1.2.1에서 추가된 기능 입니다. 이건 이지스 프로그램과는 무관하고, 항상 실행된 상태여야 하는 기능이라 egGate에 통합되어 있습니다. 같이 배포된 isHoliday.exe와 함께 사용합니다. 


원내의 특정 PC는 일정한 시각에 출근 직전에 켜지게 bios에 설정되어 있는데, 일을 하지 않는 날에는 자동으로 꺼지게 하거나, 원내에서 휴일에 다른 목적으로 계속 운영되어야 하는 pc의 경우 계속 운영을 위해 당일이 공휴일인지 아닌지를 중앙집중식으로 관리하기 위해 추가된 기능입니다.


배치파일에서,


isHoliday <egGate 운영 pc의 IP주소>:29088

if %ERRORLEVEL% == 1 goto SHUTDOWN

....

(이런 저런 작업)

goto END


:SHUTDOWN

shutdown -f -s -t 0


:END


위와 같은 설정에서 일요일, 국정공휴일, 아래 텍스트박스에 설정된 날짜들에서는 %ERRORLEVEL% 변수가 1이 되어 이후 작업을 안하고 바로 SHUTDOWN 으로 점프하여 shutdown 명령을 실행 하게 됩니다. 국정공휴일 정보는 천문연구원에서 제공하는 공공데이터 API를 사용하여 선거일 등 일정하지 않은 공휴일 및, 대체공휴일까지 포함됩니다. 결국, 아래 텍스트박스에 나열하는 날짜들은 나라에서 정하지 않은 휴가일 등을 적어 두면 됩니다. 


이 배치파일은 작업스케줄러를 이용하여 PC가 켜질 때 자동으로 실행되거나, 스케줄 되어 실행되면서 공휴일 여부에 따라 해야 할 동작들을 다르게 설정하기 위해 사용됩니다. PC가 한 대만 그런 작업을 할 때는 중앙집중식으로 관리할 필요가 없지만, 관리해야 할 PC가 많아지는 경우 번거로와서 중앙집중식으로 관리하게 위한 기능입니다.




수정 이력:


v1.2.1: 2024/6/14

 - OFF Tab 추가: 배치파일에서 공휴일 판별 기능

v1.1.1: 2024/5/12

 - 서버쓰레드에서 예외발생시 자동재시작 및 로그작성

v1.0.1: 2024/5/11

  - TCP 전송버퍼 크기 16kb로 증량

v1.0.0: 2024/4/25
 

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 드라논 / 대표 : 이아무개
주소 : 서울특별시 아무구
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : (통신판매 안합니다)
개인정보관리책임자 : 이아무개

접속자집계

오늘
371
어제
509
최대
584
전체
35,017
Copyright © dranon.ddns.net All rights reserved.