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

MHVECFLR.m

Go to the documentation of this file.
  1. MHVECFLR ;KUM - myHealtheVet File Workload ; 6/18/2013
  1. ;;1.0;My HealtheVet;**11**;June 18, 2013;Build 61
  1. ;;Per VHA Directive 2004-038, this routine should not be modified
  1. ;
  1. Q
  1. ;
  1. ; Integration Agreements:
  1. ;
  1. ; 6012 : Event Capture API $$FILE^ECFLRPC
  1. ; 6013 : ^ECD(D0
  1. ; 1894 : PCE API $$GETENC^PXAPI
  1. ; 10004 : $$GET1^DIQ
  1. ; 10104 : $$REPLACE^XLFSTR
  1. ; 2701 : $$GETDFN^MPIF001
  1. ;
  1. ;
  1. FILE(RESULT,ECSTRING) ;Start filing data into #721
  1. ;FILE^LOCATION^DSS UNIT^CATEGORY^PROCEDURE DATE TIME^PROCEDURE^PATIENT IEN^ORDERING SECTION^ENTER BY^PAT STATUS^PROVIDER^DX^
  1. ;ASSOC CLINIC^PATIENT STATUS AND CLASSIFICATION DATA^ELIGIBILITY IEN
  1. ;
  1. N MHVDXSTR,MHVCLSTR,DFN,ENCDT,HLOC,MHVVIEN,MHVWLI,ECUA,MHVERR,MHVECX,MHVQUIT,MHVSECS,MHVPDT,MHVVID,MHVSPEC
  1. ;
  1. S ECARY("ECFILE")=$P(ECSTRING,"^",1)
  1. S ECARY("ECL")=$P(ECSTRING,"^",2) ; Location, Pointer to #4
  1. S ECARY("ECD")=$P(ECSTRING,"^",3) ; DSS Unit, Pointer to #724
  1. S ECARY("ECC")=$P(ECSTRING,"^",4) ; Category, Pointer to #726
  1. ;
  1. S MHVPDT=$P(ECSTRING,"^",5)
  1. S MHVPDT=$E(MHVPDT,1,4)_$E(MHVPDT,6,7)_$E(MHVPDT,9,10)_"@"_$E(MHVPDT,12,13)_$E(MHVPDT,15,16)
  1. S X=MHVPDT
  1. S %DT="TS"
  1. D ^%DT
  1. S MHVPDT=Y
  1. S ECARY("ECDT")=MHVPDT ; Date and Time of Procedure
  1. S ECARY("ECP")=$P(ECSTRING,"^",6) ; Procedure
  1. ;
  1. ; Get Patient IEN from Patient ICN
  1. S MHVPICN=+$P(ECSTRING,"^",7)
  1. I $G(MHVPICN)'>0 S RESULT(1)="0^No Patient ICN" Q
  1. S MHVPIEN=$$GETDFN^MPIF001(MHVPICN)
  1. I $P(MHVPIEN,"^",1)=-1 S RESULT(1)="0^Patient ICN not in Database" Q
  1. S ECARY("ECDFN")=MHVPIEN ; Patient IEN for file #2
  1. ;
  1. ; DO - Retrieve Ordering Section from DSS Unit
  1. ;
  1. S ECARY("ECMN")=$P(ECSTRING,"^",8) ; Ordering Section, Pointer to #723
  1. S ECARY("ECMN")=$$GET1^DIQ(724,ECARY("ECD"),2,"I")
  1. S ECARY("ECDUZ")=$P(ECSTRING,"^",9) ; Entered/Edited by, pointer to #200
  1. S ECARY("ECPTSTAT")=$P(ECSTRING,"^",10) ; Patient Status
  1. ;
  1. ; Loading List of Providers
  1. ;
  1. S ECUA=$P(ECSTRING,"^",11) ; Primary and Secondary Providers
  1. S MHVERR=0
  1. F MHVECX=1:1 Q:MHVERR D
  1. . I $P(ECUA,";",MHVECX)="" S MHVERR=1 Q
  1. . S ECARY("ECU"_MHVECX)=$P(ECUA,";",MHVECX)
  1. ;
  1. ; Loading List of Diagnosis Codes
  1. ;
  1. S ECARY("ECDX")=$S($F($P(ECSTRING,"^",12),";"):$P($P(ECSTRING,"^",12),";",1),1:$P(ECSTRING,"^",12)) ; Primary Diagnosis
  1. S MHVDXSTR=$P(ECSTRING,"^",12)
  1. I $F(MHVDXSTR,";") D
  1. . S MHVDXSTR=$E(MHVDXSTR,$F(MHVDXSTR,";"),$L(MHVDXSTR))
  1. . S MHVSPEC(";")="^"
  1. . S ECARY("ECDXS")=$$REPLACE^XLFSTR(MHVDXSTR,.MHVSPEC) ; Secondary Diagnosis codes
  1. ;
  1. ; Additional Fields
  1. ;
  1. S ECARY("EC4")=$P(ECSTRING,"^",13) ; Associated Clinic - Pointer to #44
  1. ;
  1. ; Load Patient Eligibility and Patient Classification data
  1. ;
  1. S MHVCLSTR=$P(ECSTRING,"^",14)
  1. S ECARY("ECELIG")=$S($F(MHVCLSTR,";"):$P(MHVCLSTR,";",1),1:MHVCLSTR) ; Patient Eligibility
  1. I $F(MHVCLSTR,";") D
  1. . S MHVCLSTR=$E(MHVCLSTR,$F(MHVCLSTR,";"),$L(MHVCLSTR))
  1. . S MHVSPEC(";")="^"
  1. . S ECARY("ECLASS")=$$REPLACE^XLFSTR(MHVCLSTR,.MHVSPEC) ; Patient Classification data
  1. D FILE^ECFLRPC(.RESULT,.ECARY)
  1. ;
  1. ; Retrieve Visit IEN - 5 Seconds Loop till you get Visit IEN
  1. ;
  1. S MHVBTIM=$H
  1. S ENCDT=MHVPDT
  1. S HLOC=$P(ECSTRING,"^",13)
  1. S MHVVIEN=0
  1. S MHVSECS=0
  1. S MHVQUIT=0
  1. F MHVECX=1:1 Q:MHVQUIT D
  1. . S MHVVIEN=$$GETENC^PXAPI(MHVPIEN,ENCDT,HLOC)
  1. . I MHVVIEN<=0 D
  1. . . S MHVETIM=$H
  1. . . S MHVBTIM(1)=$P(MHVBTIM,",",1),MHVBTIM(2)=$P(MHVBTIM,",",2),MHVETIM(1)=$P(MHVETIM,",",1),MHVETIM(2)=$P(MHVETIM,",",2)
  1. . . I MHVBTIM(1)=MHVETIM(1) S MHVSECS=MHVETIM(2)-MHVBTIM(2) Q
  1. . . S MHVSECS=86400*(MHVETIM(1)-MHVBTIM(1))+(MHVETIM(2)-MHVBTIM(2)) Q
  1. . I ((MHVVIEN>0)!(MHVSECS>=5)) S MHVQUIT=1
  1. ;
  1. ; Return IEN of workload
  1. ;
  1. S MHVWLI=0
  1. S MHVWLI=$O(^ECH("APAT",MHVPIEN,MHVPDT,MHVWLI))
  1. ;
  1. S RESULT1=""
  1. S SUB="" F S SUB=$O(^TMP($J,"ECMSG",SUB)) Q:SUB="" D
  1. . S RESULT1=RESULT1_" SUBSCRIPT "_$G(SUB)_":"_$G(^TMP($J,"ECMSG",SUB))
  1. S RESULT=$G(^TMP($J,"ECMSG",1))
  1. ;
  1. ; Populate Workload IEN and Visit IEN
  1. ;
  1. I $L(RESULT,"^")=2 S RESULT=RESULT_"^"
  1. I $G(MHVVIEN)<=0 S MHVVIEN=""
  1. ;I $G(MHVVIEN)>0 S MHVVID=$$GET1^DIQ(9000010,MHVVIEN,15001)
  1. S RESULT(1)=RESULT_"^"_$G(MHVWLI)_"^"_$G(MHVVIEN)
  1. Q