Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: KMPDRDAT

KMPDRDAT.m

Go to the documentation of this file.
  1. KMPDRDAT ;SP/JML - Cover Sheet Load Raw Data Extract ;5/1/2017
  1. ;;4.0;CAPACITY MANAGEMENT;;3/1/2018;Build 38
  1. ;
  1. ; Send raw data to CPE database
  1. ; START TIME^FG DELTA^BG DELTA^TOT DELTA^CLIENT DUZ^CLIENT NAME^KMPTMP SUBSCRIPT KEY^APPLICATION TITLE^IP^DFN
  1. ;"KMPD","RDAT",
  1. EN ;
  1. N KMPDBDLT,KMPDBGD,KMPDBGSS,KMPDDAT1,KMPDDATA,KMPDDELT,KMPDDOM,KMPDFDLT,KMPDFGBG,KMPDFGD,KMPDFGSS
  1. N KMPDFMDAY,KMPDHDAY,KMPDID,KMPDLN,KMPDP,KMPDPROD,KMPDSINF,KMPDSITE,KMPDSYS,KMPDTDLT,KMPDWD,Y
  1. ;
  1. K ^KMPTMP("KMPD","RDAT")
  1. S KMPDHDAY=+$H-1
  1. S KMPDFMDAY=+$$HTFM^XLFDT(KMPDHDAY,1)
  1. S KMPDWD=$$WORKDAY^XUWORKDY(KMPDFMDAY) ; IA#10046
  1. ;
  1. ; SET HEADER LINES
  1. S KMPDLN=1
  1. S ^KMPTMP("KMPD","RDAT",KMPDLN)="SYSTEM ID="_$$SITEINFO^KMPVCCFG(),KMPDLN=KMPDLN+1
  1. S ^KMPTMP("KMPD","RDAT",KMPDLN)="UPDATE CONFIG="_KMPDHDAY_U_KMPDWD_"^DAILY",KMPDLN=KMPDLN+1
  1. S ^KMPTMP("KMPD","RDAT",KMPDLN)="SYSTEM CONFIG="_$$SYSCFG^KMPVCCFG(),KMPDLN=KMPDLN+1
  1. ;
  1. ; DETERMINE FOREGROUND, BACKGROUND OR BOTH
  1. S KMPDFGBG=0,U="^"
  1. I $D(^KMPTMP("KMPDT","ORWCV")) S KMPDFGBG=1
  1. I $D(^KMPTMP("KMPDT","ORWCV-FT")) S KMPDFGBG=KMPDFGBG+2
  1. I KMPDFGBG=1 D ORONE("ORWCV")
  1. I KMPDFGBG=2 D ORONE("ORWCV-FT")
  1. I KMPDFGBG=3 D ORBOTH
  1. ;
  1. D TRANSMIT
  1. ;
  1. K ^KMPTMP("KMPD","RDAT")
  1. Q
  1. ;
  1. ORONE(KMPDSUB) ;
  1. S KMPDID=""
  1. F S KMPDID=$O(^KMPTMP("KMPDT",KMPDSUB,KMPDID)) Q:KMPDID="" D
  1. .S KMPDDAT1=$G(^KMPTMP("KMPDT",KMPDSUB,KMPDID))
  1. .Q:$P(KMPDDAT1,U,5)=1
  1. .; identifier
  1. .S KMPDDATA=""
  1. .; server start date/time
  1. .S $P(KMPDDATA,U,1)=$P(KMPDDAT1,U)
  1. .; (FG or BG delta) and (Total server delta)
  1. .D:$P(KMPDDAT1,U,2)
  1. ..S KMPDDELT=$$HDIFF^XLFDT($P(KMPDDAT1,U,2),$P(KMPDDAT1,U),2)
  1. ..S KMPDP=$S(KMPDSUB="ORWCV-FT":2,1:3)
  1. ..S $P(KMPDDATA,U,KMPDP)=KMPDDELT
  1. ..S $P(KMPDDATA,U,4)=KMPDDELT
  1. .; client duz
  1. .S $P(KMPDDATA,U,5)=$P(KMPDDAT1,U,3)
  1. .; client name
  1. .S $P(KMPDDATA,U,6)=$P(KMPDDAT1,U,4)
  1. .; kmptmp subscript key
  1. .S $P(KMPDDATA,U,7)=KMPDSUB
  1. .; application title
  1. .S $P(KMPDDATA,U,8)="CPRS Cover Sheet"
  1. .; ip address
  1. .S $P(KMPDDATA,U,9)=$P($P(KMPDID,"-")," ",2)
  1. .; patient DFN
  1. .S $P(KMPDDATA,U,10)=$P(KMPDID,"-",3)
  1. .; START TIME^FG DELTA^BG DELTA^TOT DELTA^CLIENT DUZ^CLIENT NAME^KMPTMP SUBSCRIPT KEY^APPLICATION TITLE^IP^DFN
  1. .S ^KMPTMP("KMPD","RDAT",KMPDLN)="CVLOAD DATA="_KMPDDATA,KMPDLN=KMPDLN+1
  1. .S $P(^KMPTMP("KMPDT",KMPDSUB,KMPDID),U,5)=1
  1. Q
  1. ;
  1. ORBOTH ;
  1. ; loop foreground node and concurrently look at related background node
  1. S KMPDBGSS="ORWCV",KMPDFGSS="ORWCV-FT"
  1. S KMPDID=""
  1. F S KMPDID=$O(^KMPTMP("KMPDT",KMPDFGSS,KMPDID)) Q:KMPDID="" D
  1. .S KMPDFGD=$G(^KMPTMP("KMPDT",KMPDFGSS,KMPDID))
  1. .Q:$P(KMPDFGD,U,5)=1 ; ALREADY SENT
  1. .S KMPDBGD=$G(^KMPTMP("KMPDT",KMPDBGSS,KMPDID))
  1. .S KMPDDATA=""
  1. .S $P(KMPDDATA,U,1)=$P(KMPDFGD,U)
  1. .S (KMPDFDLT,KMPDBDLT,KMPDTDLT)=""
  1. .I $P(KMPDFGD,U,2) S KMPDFDLT=$$HDIFF^XLFDT($P(KMPDFGD,U,2),$P(KMPDFGD,U),2)
  1. .I $P(KMPDBGD,U,2) S KMPDBDLT=$$HDIFF^XLFDT($P(KMPDBGD,U,2),$P(KMPDBGD,U),2)
  1. .S KMPDTDLT=KMPDFDLT+KMPDBDLT
  1. .S $P(KMPDDATA,U,2)=KMPDFDLT
  1. .S $P(KMPDDATA,U,3)=KMPDBDLT
  1. .S $P(KMPDDATA,U,4)=KMPDTDLT
  1. .; client duz
  1. .S $P(KMPDDATA,U,5)=$P(KMPDFGD,U,3)
  1. .; client name
  1. .S $P(KMPDDATA,U,6)=$P(KMPDFGD,U,4)
  1. .; kmptmp subscript key
  1. .S $P(KMPDDATA,U,7)="ORWCV-FGBG"
  1. .; application title
  1. .S $P(KMPDDATA,U,8)="CPRS Cover Sheet"
  1. .; ip address
  1. .S $P(KMPDDATA,U,9)=$P($P(KMPDID,"-")," ",2)
  1. .; patient DFN
  1. .S $P(KMPDDATA,U,10)=$P(KMPDID,"-",3)
  1. .; START TIME^FG DELTA^BG DELTA^TOT DELTA^CLIENT DUZ^CLIENT NAME^KMPTMP SUBSCRIPT KEY^APPLICATION TITLE^IP^DFN
  1. .S ^KMPTMP("KMPD","RDAT",KMPDLN)="CVLOAD DATA="_KMPDDATA,KMPDLN=KMPDLN+1
  1. .S $P(^KMPTMP("KMPDT",KMPDFGSS,KMPDID),U,5)=1
  1. .S $P(^KMPTMP("KMPDT",KMPDBGSS,KMPDID),U,5)=1
  1. ; Loop BG node in case there is an entry that didn't have a FG entry.
  1. ; The reverse situation already handled in first loop.
  1. D ORONE("ORWCV")
  1. Q
  1. ;
  1. TRANSMIT ;
  1. ; quit if no data to transmit.
  1. Q:'$D(^KMPTMP("KMPD","RDAT"))
  1. N XMSUB,XMTEXT,XMY,XMZ
  1. ; send data via mail message.
  1. S XMTEXT="^KMPTMP(""KMPD"",""RDAT"","
  1. S XMSUB="CVLOAD DAILY DATA"
  1. S XMY("S.KMPD-ORWCV-SERVER@VISTA.CPE.DOMAIN.EXT")=""
  1. D ^XMD
  1. Q