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

MMRSCRE2.m

Go to the documentation of this file.
  1. MMRSCRE2 ;TCK - Print CRE Report Cont. (Contains functions to collect patient movements) ; 3/3/17 10:37am
  1. ;;1.0;MDRO PROGRAM TOOLS;**4,5**;Jun 01, 2016;Build 146
  1. ;
  1. GETMOVE ;Collects ward movements for patients that were admitted or discharged in date range.
  1. N DUPLOC,MMRSLOC2
  1. D GETADM(LOC)
  1. ;
  1. GETADM(LOC) ;
  1. N TT,MOVDT,MOVIFN,TRANTYPE,INWARD,INDATE,INIFN,INTT,OUTDATE,OUTIFN,OUTTT,NEXTIEN,LOCNAME,VAIP,INLOC
  1. N OUTWARD,PREVWARD
  1. F TT=1,2 S MOVDT=STRTDT-.0000001 F S MOVDT=$O(^DGPM("ATT"_TT,MOVDT)) Q:(MOVDT>ENDDT)!('MOVDT) D
  1. .S MOVIFN="" F S MOVIFN=$O(^DGPM("ATT"_TT,MOVDT,MOVIFN)) Q:'MOVIFN D
  1. ..D KVA^VADPT S DFN=$P($G(^DGPM(MOVIFN,0)),"^",3),VAIP("E")=MOVIFN D IN5^VADPT
  1. ..S TRANTYPE=$$TRANTYPE(+VAIP(4),+VAIP(2),VAIP(1),DFN)
  1. ..S PREVWARD=$P(TRANTYPE,U,2)
  1. ..I PREVWARD="" S PREVWARD=+VAIP(15,4)
  1. ..S TRANTYPE=$P(TRANTYPE,U,1)
  1. ..I TRANTYPE<1!(TRANTYPE=3) Q
  1. ..S INWARD=+VAIP(5),WARD=$$GET1^DIQ(42,INWARD,.01,"E")
  1. ..I $G(INWARD)>0 D
  1. ...S HSPLC=$$GET1^DIQ(42,INWARD,44,"I")
  1. ...S DIV=$$GET1^DIQ(44,HSPLC,3.5,"E")
  1. ...S DIVS=$$GET1^DIQ(44,HSPLC,3.5,"I")
  1. ...S DIVID=$$GET1^DIQ(40.8,DIVS,1,"I"),LOC=$$GET1^DIQ(40.8,DIVS,.01,"I")
  1. ..;IS THIS WARD EXCLUDED FROM THIS REPORT
  1. ..Q:DIV'=LOC
  1. ..S LOCNAME=LOC
  1. ..S WRDLOC(INWARD)=""
  1. ..I TRANTYPE=2,'$$CNGWARD(LOC,PREVWARD,INWARD) Q
  1. ..;SET GLOBAL
  1. ..S INDATE=+VAIP(3)
  1. ..S INIFN=MOVIFN
  1. ..S INTT=TRANTYPE
  1. ..S ADT=$$GET1^DIQ(405,MOVIFN,.04,"E")
  1. ..S (OUTDATE,OUTIFN,OUTTT)=""
  1. ..F Q:(VAIP(16)="")!(OUTIFN) D
  1. ...S TRANTYPE=$$TRANTYPE(+VAIP(16,3),+VAIP(16,2),VAIP(16),DFN)
  1. ...S OUTWARD=$P(TRANTYPE,U,2)
  1. ...S NEXTIEN=$P(TRANTYPE,U,3)
  1. ...S TRANTYPE=$P(TRANTYPE,U,1)
  1. ...I OUTWARD="" S OUTWARD=+VAIP(16,4)
  1. ...I TRANTYPE=3 S OUTDATE=+VAIP(16,1),OUTIFN=VAIP(16),OUTTT=3
  1. ...;I TRANTYPE=2,$$CNGWARD(LOC,INWARD,OUTWARD) S OUTDATE=+VAIP(16,1),OUTIFN=VAIP(16),OUTTT=2
  1. ...Q:OUTIFN
  1. ...I NEXTIEN="" S NEXTIEN=VAIP(16)
  1. ...D KVA^VADPT
  1. ...S VAIP("E")=NEXTIEN
  1. ...D IN5^VADPT
  1. ..S INLOC=$G(INWARD)
  1. ..S PATNM=$$GET1^DIQ(2,DFN,.01,"E")
  1. ..S SSN=$$GET1^DIQ(2,DFN,.09,"E"),LAST4=$E(SSN,6,9)
  1. ..S MASMOV=$$GET1^DIQ(405.1,TRANTYPE,.04,"E")
  1. ..S ^TMP($J,"MMRSCRE","D",LOCNAME,DFN,INDATE)=INLOC_U_DFN_U_INDATE_U_INIFN_U_INTT_U_WARD_U_PATNM_U_LAST4_U_INDATE_U_OUTDATE
  1. ..;S ^TMP($J,"MMRSCRE","DETAIL",LOCNAME,INDATE)=WARD_U_PATNM_U_LAST4_U_INDATE
  1. D KVA^VADPT
  1. Q
  1. CNGWARD(LOC,WARD1,WARD2) ;Did patient change wards?
  1. I +$G(LOC)=0 S LOC=$$GETLOC(WARD1,.MMRSLOC2)
  1. I $D(^MMRS(104.3,LOC,1,"B",WARD1)),$D(^MMRS(104.3,LOC,1,"B",WARD2)) Q 0
  1. Q 1
  1. EXCWARD(LOC,WARD) ;Is this ward excluded from the reports?
  1. I +$G(LOC)=0 S LOC=$$GETLOC(WARD,.MMRSLOC2)
  1. I LOC=0 Q 1
  1. I $D(^MMRS(104.3,LOC,1,"B",WARD)) Q 0
  1. Q 1
  1. DUPLOC(LOC,LCTNS) ;
  1. N RSLT,WARD,LOC2
  1. S RSLT=0
  1. S WARD=0 F S WARD=$O(^MMRS(104.3,LOC,1,"B",WARD)) Q:'WARD D
  1. .S LOC2=0 F S LOC2=$O(LCTNS(LOC2)) Q:'LOC2 D
  1. ..Q:LOC2=LOC
  1. ..I $D(^MMRS(104.3,LOC2,1,"B",WARD)) S RSLT=1
  1. Q RSLT
  1. GETLOC(WARD,LCTNS) ;
  1. N RSLT,LOC
  1. S RSLT=0
  1. S LOC=0 F S LOC=$O(LCTNS(LOC)) Q:'LOC!(RSLT) D
  1. .I $D(^MMRS(104.3,LOC,1,"B",WARD)) S RSLT=LOC
  1. Q RSLT
  1. TRANTYPE(MOVTYPE,TRANTYPE,MOVIEN,DFN) ;
  1. I MOVTYPE=46!(MOVTYPE=5)!(MOVTYPE=6)!(MOVTYPE=7)!(MOVTYPE=47)!(MOVTYPE=27)!(MOVTYPE=33)!(MOVTYPE=3)!(MOVTYPE=22) Q -1 ;MIA/LMT - Removed MOVTYPE 29 ;4/15/10
  1. I MOVTYPE=42!(MOVTYPE=20)!(MOVTYPE=1)!(MOVTYPE=45)!(MOVTYPE=23)!(MOVTYPE=25)!(MOVTYPE=26) Q -1
  1. I MOVTYPE=2!(MOVTYPE=43)!(MOVTYPE=13) Q 3
  1. I MOVTYPE=14!(MOVTYPE=24)!(MOVTYPE=44) Q 1
  1. S TRANTYPE=$$CHKOBS^MMRSIPC2(DFN,MOVIEN,TRANTYPE)
  1. Q TRANTYPE
  1. ;
  1. END ;
  1. K ADT,DIV,DIVID,DIVS,ENDDT,HLPLC,LAST4,MASMOV,PATNM,SSN
  1. K STRTDT,WRDLOC,HSPLC
  1. Q
  1. ;