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

MMRSIPC5.m

Go to the documentation of this file.
  1. MMRSIPC5 ;MIA/LMT - Auto-Extract MRSA IPEC Report ;08-20-09
  1. ;;1.0;MRSA PROGRAM TOOLS;;Aug 22, 2009;Build 35
  1. ;
  1. ;This routine will run the auto-extract for the MRSA IPEC Report.
  1. ;This routine uses functions contained in MMRSIPC, MMRSIPC2, MMRSIPC3, and MMRSIPC4.
  1. TASK ;Entry for auto-extract to IPEC
  1. ;Extract prevalence and transmission data for all Acute Care and CLC units
  1. Q:'$$PROD^XUPROD
  1. N NOW,FIRST,STRTDT,ENDDT,MMRSDIV,TYPE,MMRSLOC,BYADM,PRTSUM,LOC,DATA,MMRSMSG
  1. N MAILTO,MONTH,YEAR,DIV,DIVNUM,SUBJECT,LOCIEN,IPECUID
  1. S NOW=$$NOW^XLFDT()
  1. S FIRST=$E(NOW,1,5)_"01"
  1. S ENDDT=$$FMADD^XLFDT(FIRST,-1,0,0,0)_".24"
  1. S STRTDT=$E(ENDDT,1,5)_"01"
  1. S MMRSDIV=0 F S MMRSDIV=$O(^MMRS(104,MMRSDIV)) Q:'MMRSDIV D
  1. .F TYPE="AC","CLC" D
  1. ..N MMRSLOC,BYADM
  1. ..S LOC=0 F S LOC=$O(^MMRS(104.3,LOC)) Q:'LOC D
  1. ...I $P($G(^MMRS(104.3,LOC,0)),U,2)=MMRSDIV,$P($G(^MMRS(104.3,LOC,0)),U,3)=TYPE S MMRSLOC(LOC)=""
  1. ..I '$O(MMRSLOC(0)) Q
  1. ..F BYADM=0,1 D
  1. ...D CLEAN^MMRSIPC ;Kill Temp Global
  1. ...D GETPARAM^MMRSIPC ; Load parameters in temp global
  1. ...D GETMOVE^MMRSIPC2 ;Get movements and store in temp global
  1. ...D GETLABS^MMRSIPC3 ;Get swabbing rates and MRSA history and store in temp global
  1. ...I 'BYADM D PATDAYS^MMRSIPC ;Get patient days of care
  1. ...I BYADM D
  1. ....S LOC="" F S LOC=$O(^TMP($J,"MMRSIPC","DSUM",LOC)) Q:LOC="" D
  1. .....S DATA=$G(^TMP($J,"MMRSIPC","DSUM",LOC))
  1. .....S $P(MMRSMSG(MMRSDIV,TYPE_"U",LOC),"~",1,5)=$TR($P(DATA,U,5,9),U,"~")
  1. ....S DATA=$G(^TMP($J,"MMRSIPC","DSUM"))
  1. ....S MMRSMSG(MMRSDIV,TYPE_"S","FACILITY")=$TR($P(DATA,U,1,4),U,"~")
  1. ...I 'BYADM D
  1. ....S LOC="" F S LOC=$O(^TMP($J,"MMRSIPC","DSUM",LOC)) Q:LOC="" D
  1. .....S DATA=$G(^TMP($J,"MMRSIPC","DSUM",LOC))
  1. .....S $P(MMRSMSG(MMRSDIV,TYPE_"U",LOC),"~",6,10)=$TR($P(DATA,U,1,5),U,"~")
  1. ...D CLEAN^MMRSIPC ;Kill Temp Global
  1. MAIL ;Mail prevalence and transmission measures to IPEC
  1. S MAILTO="G.IPEC ACK MESSAGE@KANSAS-CITY.DOMAIN.EXT"
  1. S MONTH=$E(STRTDT,4,5)
  1. S YEAR=$E(STRTDT,1,3)+1700
  1. S MMRSDIV=0 F S MMRSDIV=$O(MMRSMSG(MMRSDIV)) Q:'MMRSDIV D
  1. .S DIV=$P($G(^MMRS(104,MMRSDIV,0)),U,1)
  1. .S DIVNUM=$P($$SITE^VASITE(,DIV),U,3)
  1. .S SUBJECT=$S($$PROD^XUPROD:"",1:"TEST")_"MRSA~"_DIVNUM_"~"_MONTH_"-"_YEAR
  1. .I $D(MMRSMSG(MMRSDIV,"ACU")) D
  1. ..N TEXT,XMTEXT,XMDUZ,XMY,XMMG,XMSTRIP,XMROU,DIFROM,XMYBLOB,LINE,XMDUN,XMZ,XMSUB
  1. ..S XMSUB=SUBJECT_"~DU"
  1. ..S TEXT(1)="Type~VISN~Station~Unit~UnitID~Year~Month~PrevAdmissions~PrevScreensInd~PrevScreens~PrevScreensPos~PrevCulturesPos~TransBedDays~TransExits~TransSwabsInd~TransScreens~TransTrans"
  1. ..S LINE=2
  1. ..S LOC="" F S LOC=$O(MMRSMSG(MMRSDIV,"ACU",LOC)) Q:LOC="" D
  1. ...S LOCIEN=$O(^MMRS(104.3,"B",LOC,0))
  1. ...S IPECUID=$P($G(^MMRS(104.3,LOCIEN,0)),U,4)
  1. ...S TEXT(LINE)="DU~~"_DIVNUM_"~"_LOC_"~"_IPECUID_"~"_YEAR_"~"_+MONTH_"~"_$G(MMRSMSG(MMRSDIV,"ACU",LOC))
  1. ...S LINE=LINE+1
  1. ..S XMTEXT="TEXT("
  1. ..S XMY(MAILTO)=""
  1. ..D ^XMD
  1. .I $D(MMRSMSG(MMRSDIV,"ACS","FACILITY")) D
  1. ..N TEXT,XMTEXT,XMDUZ,XMY,XMMG,XMSTRIP,XMROU,DIFROM,XMYBLOB,LINE,XMDUN,XMZ,XMSUB
  1. ..S XMSUB=SUBJECT_"~DS"
  1. ..S TEXT(1)="Type~VISN~Station~Year~Month~PrevAdmissions~PrevScreens~PrevScreensPos~PrevCulturesPos"
  1. ..S TEXT(2)="DS~~"_DIVNUM_"~"_YEAR_"~"_+MONTH_"~"_$G(MMRSMSG(MMRSDIV,"ACS","FACILITY"))
  1. ..S XMTEXT="TEXT("
  1. ..S XMY(MAILTO)=""
  1. ..D ^XMD
  1. .I $D(MMRSMSG(MMRSDIV,"CLCU")) D
  1. ..N TEXT,XMTEXT,XMDUZ,XMY,XMMG,XMSTRIP,XMROU,DIFROM,XMYBLOB,LINE,XMDUN,XMZ,XMSUB
  1. ..S XMSUB=SUBJECT_"~CU"
  1. ..S TEXT(1)="Type~VISN~Station~Unit~UnitID~Year~Month~PrevAdmissions~PrevScreensInd~PrevScreens~PrevScreensPos~PrevCulturesPos~TransBedDays~TransExits~TransSwabsInd~TransScreens~TransTrans"
  1. ..S LINE=2
  1. ..S LOC="" F S LOC=$O(MMRSMSG(MMRSDIV,"CLCU",LOC)) Q:LOC="" D
  1. ...S LOCIEN=$O(^MMRS(104.3,"B",LOC,0))
  1. ...S IPECUID=$P($G(^MMRS(104.3,LOCIEN,0)),U,4)
  1. ...S TEXT(LINE)="CU~~"_DIVNUM_"~"_LOC_"~"_IPECUID_"~"_YEAR_"~"_+MONTH_"~"_$G(MMRSMSG(MMRSDIV,"CLCU",LOC))
  1. ...S LINE=LINE+1
  1. ..S XMTEXT="TEXT("
  1. ..S XMY(MAILTO)=""
  1. ..D ^XMD
  1. .I $D(MMRSMSG(MMRSDIV,"CLCS","FACILITY")) D
  1. ..N TEXT,XMTEXT,XMDUZ,XMY,XMMG,XMSTRIP,XMROU,DIFROM,XMYBLOB,LINE,XMDUN,XMZ,XMSUB
  1. ..S XMSUB=SUBJECT_"~CS"
  1. ..S TEXT(1)="Type~VISN~Station~Year~Month~PrevAdmissions~PrevScreens~PrevScreensPos~PrevCulturesPos"
  1. ..S TEXT(2)="CS~~"_DIVNUM_"~"_YEAR_"~"_+MONTH_"~"_$G(MMRSMSG(MMRSDIV,"CLCS","FACILITY"))
  1. ..S XMTEXT="TEXT("
  1. ..S XMY(MAILTO)=""
  1. ..D ^XMD
  1. Q