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

BGPMUUTL.m

Go to the documentation of this file.
  1. BGPMUUTL ; IHS/MSC/MMT - Meaningful Use Reporting Utilities;02-Mar-2011 11:55;DU
  1. ;;14.1;IHS CLINICAL REPORTING;**1**;MAY 29, 2014;Build 2
  1. ;
  1. VER() ;EP
  1. Q "CRS 2014, Version 14.1 Patch 1"
  1. JRNL ;EP
  1. N %DT,U,ZTQUEUED
  1. S %=$$NOJOURN^ZIBGCHAR("BGPGPDCT"),%=$$NOJOURN^ZIBGCHAR("BGPGPDPT"),%=$$NOJOURN^ZIBGCHAR("BGPGPDBT"),%=$$NOJOURN^ZIBGCHAR("BGPHEDCT"),%=$$NOJOURN^ZIBGCHAR("BGPHEDPT"),%=$$NOJOURN^ZIBGCHAR("BGPHEDBT")
  1. S %=$$NOJOURN^ZIBGCHAR("BGPDATA"),%=$$NOJOURN^ZIBGCHAR("BGPGUI")
  1. ;S %=$$NOJOURN^ZIBGCHAR("BGPELDCT"),%=$$NOJOURN^ZIBGCHAR("BGPELDPT"),%=$$NOJOURN^ZIBGCHAR("BGPELDBT")
  1. ;S %=$$NOJOURN^ZIBGCHAR("BGPEOCT"),%=$$NOJOURN^ZIBGCHAR("BGPEOPT"),%=$$NOJOURN^ZIBGCHAR("BGPEOBT")
  1. S %=$$NOJOURN^ZIBGCHAR("BGPXPT")
  1. Q
  1. PTLSORT(RETARR,INARR) ;EP - SORTS AN ARRAY OF PATIENTS TO DESIRED ORDER
  1. N PT,DFN,DATA,COMM,SEX,AGE,HRN,TMPARR,OCNT
  1. K RETARR,TMPARR
  1. S PT=""
  1. ;Move all patients into an array subscripted by sort criteria
  1. F S PT=$O(@INARR@(PT)) Q:PT="" D
  1. .S DATA=@INARR@(PT),DFN=$P(DATA,U,1)
  1. .S COMM=$$GET1^DIQ(9000001,DFN,1118) S:COMM="" COMM=" "
  1. .S SEX=$P(^DPT(DFN,0),U,2) S:SEX="" SEX=" "
  1. .S AGE=$$AGE^AUPNPAT(DFN,BGPED) S:AGE="" AGE=" "
  1. .S HRN=$$HRN^AUPNPAT(DFN,DUZ(2)) S:HRN="" HRN=" "
  1. .S TMPARR(COMM,SEX,AGE,HRN,PT)=DFN
  1. S OCNT=0
  1. S COMM="" F S COMM=$O(TMPARR(COMM)) Q:COMM="" D
  1. .S SEX="" F S SEX=$O(TMPARR(COMM,SEX)) Q:SEX="" D
  1. ..S AGE="" F S AGE=$O(TMPARR(COMM,SEX,AGE)) Q:AGE="" D
  1. ...S HRN="" F S HRN=$O(TMPARR(COMM,SEX,AGE,HRN)) Q:HRN="" D
  1. ....S PT="" F S PT=$O(TMPARR(COMM,SEX,AGE,HRN,PT)) Q:PT="" D
  1. .....;S PT=TMPARR(COMM,SEX,AGE,HRN)
  1. .....S OCNT=OCNT+1
  1. .....S RETARR(OCNT)=@INARR@(PT)
  1. Q
  1. DATE(D) ;EP
  1. I D="" Q ""
  1. Q $E(D,4,5)_"/"_$E(D,6,7)_"/"_$E(D,2,3)
  1. ;
  1. XTMP(N,D) ;EP
  1. Q:$G(N)=""
  1. S ^XTMP(N,0)=$$FMADD^XLFDT(DT,14)_"^"_DT_"^"_$G(D)
  1. Q
  1. MAPLOAD ;EP Enter a fle name to map to NDC codes
  1. N BGPPATH,BGPFN,Y,X,NDC,RXNORM
  1. S DIR(0)="F^1:40",DIR("A")="Enter a filename for the delimited input (no more than 40 characters)" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) Q
  1. S BGPPATH=Y
  1. S BGPFN=$P(BGPPATH,"\",-1),$P(BGPPATH,"\",-1)=""
  1. S Y=$$OPEN^%ZISH(BGPPATH,BGPFN,"R")
  1. I Y=1 W:'$D(ZTQUEUED) !!,"Cannot open host file." Q
  1. F I=1:1 U IO R X:DTIME S X=$$STRIP(X) Q:X="" S RXNORM=$P(X,"|",2),NDC=$P(X,"|",1),^BGPMUTMP("NDC MAP","X",RXNORM,NDC)="" Q:$$STATUS^%ZISH=-1
  1. D ^%ZISC
  1. W !!,"All done reading file",!
  1. Q
  1. STRIP(Z) ;REMOVE CONTROLL CHARACTERS
  1. NEW I
  1. F I=1:1:$L(Z) I (32>$A($E(Z,I))) S Z=$E(Z,1,I-1)_""_$E(Z,I+1,999)
  1. Q Z
  1. XWALK ;EP
  1. N BGPRXN,BGPRXNLT,BGPFND,BGPNDC,BGPNDCLT
  1. S DIR(0)="F",DIR("A")="Enter a comma delimited list of RxNorm codes" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) Q
  1. S BGPRXNLT=Y
  1. S BGPRXNLT=$TR(BGPRXNLT," ")
  1. S BGPNDCLT=""
  1. F I=1:1:$L(BGPRXNLT,",") D
  1. .S BGPRXN=$P(BGPRXNLT,",",I),BGPNDC="",BGPFND=0
  1. .F S BGPNDC=$O(^BGPMUTMP("NDC MAP","X",BGPRXN,BGPNDC)) Q:BGPNDC="" D
  1. ..S BGPNDCLT=BGPNDCLT_","_BGPNDC
  1. ..S BGPFND=1
  1. .W:'BGPFND !,"RxNorm code "_BGPRXN_" not found!"
  1. S BGPNDCLT=$E(BGPNDCLT,2,*)
  1. W !!,"Mapped NDC Codes:",!,BGPNDCLT
  1. Q