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

APCHS2I.m

Go to the documentation of this file.
  1. APCHS2I ; IHS/CMI/LAB - PART 2 OF APCHS -- SUMMARY PRODUCTION COMPONENTS ; 03 Jul 2012 7:20 PM
  1. ;;2.0;IHS PCC SUITE;**9**;MAY 14, 2009;Build 3
  1. ;
  1. INPMEAS ; ******************** MEASUREMENTS * 9000010.01 *******
  1. ; <SETUP>
  1. Q:'$D(^AUPNVMSR("AA",APCHSPAT))
  1. ;get last/latest Hospital Stay admission date
  1. NEW APCHINPB,APCHINPV,APCHINPD,APCHINPS,APCHVSIT,APCHM,APCHMEAS,APCHEVD,APCHM,APCHSX,APCHSMT,APCHSDFN ;adm date ivd, ien, dd ivd
  1. S APCHINPV=$$LASTHV(APCHSPAT) ;get ien of latest H visit that is not contract health
  1. I 'APCHINPV Q ;no hospital stays so don't bother
  1. S APCHINPB=$P($P(^AUPNVSIT(APCHINPV,0),U,1),".") ;admission date of last H visit
  1. S APCHINPS=9999999-APCHINPB
  1. S APCHINPD=$$DSCHDATE^APCLV(APCHINPV) ;get discharge date
  1. I APCHINPD="" S APCHINPD=DT ;if no discharge date, set to DT as this means the patient is in-house
  1. X APCHSBRK
  1. ; <DISPLAY>
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. ;loop through all visits from adm date to discharge date (or DT) and display measurements from
  1. ;H and I visits
  1. S APCHSIVD=(9999999-APCHINPD-1)_".9999"
  1. F S APCHSIVD=$O(^AUPNVSIT("AA",APCHSPAT,APCHSIVD)) Q:$P(APCHSIVD,".")>APCHINPS!(APCHSIVD="") D
  1. .S APCHVSIT=0 F S APCHVSIT=$O(^AUPNVSIT("AA",APCHSPAT,APCHSIVD,APCHVSIT)) Q:APCHVSIT'=+APCHVSIT D
  1. ..Q:'$D(^AUPNVSIT(APCHVSIT,0))
  1. ..Q:"HI"'[$P(^AUPNVSIT(APCHVSIT,0),U,7) ;only H and I
  1. ..S APCHM=0 F S APCHM=$O(^AUPNVMSR("AD",APCHVSIT,APCHM)) Q:APCHM="" D
  1. ...;GET EVENT DATE/TIME OR VISIT DATE/TIME
  1. ...Q:'$D(^AUPNVMSR(APCHM,0))
  1. ...Q:$P(^AUPNVMSR(APCHM,0),U,1)=""
  1. ...Q:$P($G(^AUPNVMSR(APCHM,2)),U,1) ;entered in error so skip it
  1. ...S APCHEVD=+$E($P($G(^AUPNVMSR(APCHM,12)),U,1),1,12) ;STRIP OFF SECONDS IF ENTERED PER SUSAN AND MARY ANN EMAIL
  1. ...I APCHEVD=""!(APCHEVD=0) S APCHEVD=$P(^AUPNVSIT(APCHINPV,0),U,1) ;visit date/time if no event date time
  1. ...I APCHMDSP="D" S APCHMEAS(APCHEVD,$$VAL^XBDIQ1(9000010.01,APCHM,.01),APCHM)=""
  1. ...I APCHMDSP="T" S APCHMEAS($$VAL^XBDIQ1(9000010.01,APCHM,.01),APCHEVD,APCHM)=""
  1. ;now display them
  1. D MEASDSP
  1. ; <CLEANUP>
  1. MEASX K APCHSMT,APCHSMT2,APCHSMT3,APCHSDFN,APCHSND2,APCHSDAT,APCHMEAS
  1. Q
  1. INPMEASD ;EP
  1. S APCHMDSP="D"
  1. G INPMEAS
  1. INPMEAST ;EP
  1. S APCHMDSP="T"
  1. G INPMEAS
  1. MEASDSP ;
  1. I APCHMDSP="T" G MEASDSPT ;display by type
  1. S APCHSIVD="" F S APCHSIVD=$O(APCHMEAS(APCHSIVD),-1) Q:APCHSIVD=""!($D(APCHSQIT)) D
  1. .X APCHSCKP Q:$D(APCHSQIT) W !,?2,$$DT(APCHSIVD)
  1. .S APCHMT="" F S APCHMT=$O(APCHMEAS(APCHSIVD,APCHMT)) Q:APCHMT=""!($D(APCHSQIT)) D
  1. ..S APCHSDFN=0 F S APCHSDFN=$O(APCHMEAS(APCHSIVD,APCHMT,APCHSDFN)) Q:APCHSDFN=""!($D(APCHSQIT)) D MEASDSP1
  1. Q
  1. MEASDSPT ;
  1. ;
  1. S APCHMT="" F S APCHMT=$O(APCHMEAS(APCHMT)) Q:APCHMT="" D
  1. .X APCHSCKP Q:$D(APCHSQIT)
  1. .W !?1,$S(APCHMT="O2":"O2 Sat",1:APCHMT)
  1. .S APCHSIVD="" F S APCHSIVD=$O(APCHMEAS(APCHMT,APCHSIVD),-1) Q:APCHSIVD=""!($D(APCHSQIT)) D
  1. ..S APCHSDFN=0 F S APCHSDFN=$O(APCHMEAS(APCHMT,APCHSIVD,APCHSDFN)) Q:APCHSDFN=""!($D(APCHSQIT)) D
  1. ...D MEASDSP2
  1. Q
  1. DT(D) ;
  1. NEW A
  1. S A=$$FMTE^XLFDT(D,5)
  1. S A=$P(A,"@",2),A=$P(A,":",1,2)
  1. NEW B
  1. S B=$E(D,4,5)_"/"_$E(D,6,7)_"/"_(1700+$E(D,1,3))
  1. Q B_$S(A]"":"@",1:"")_A
  1. ;
  1. MEASDSP1 ;
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. W ?21,$S(APCHMT="O2":"O2 Sat",1:APCHMT) D REST
  1. Q
  1. MEASDSP2 ;
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. W:APCHSNPG ?1,$S(APCHMT="O2":"O2 Sat",1:APCHMT)
  1. W ?9,$$DT(APCHSIVD)
  1. D REST
  1. Q
  1. REST ;
  1. W ?29,$P(^AUPNVMSR(APCHSDFN,0),U,4)
  1. I $$VAL^XBDIQ1(9000010.01,APCHSDFN,.01)="O2" D
  1. .Q:$P(^AUPNVMSR(APCHSDFN,0),U,10)=""
  1. .W ?41,"Supplemental O2: ",$P(^AUPNVMSR(APCHSDFN,0),U,10),!
  1. I '$O(^AUPNVMSR(APCHSDFN,5,0)) W ! Q ;no qualifiers
  1. S C=0,X=0 F S X=$O(^AUPNVMSR(APCHSDFN,5,X)) Q:X'=+X S C=C+1
  1. W ?41,"Qualifier"_$S(C>1:"s",1:""),":"
  1. S APCHSX=0,X="" F S APCHSX=$O(^AUPNVMSR(APCHSDFN,5,APCHSX)) Q:APCHSX'=+APCHSX S Y=$P($G(^AUPNVMSR(APCHSDFN,5,APCHSX,0)),U) I Y S X=X_$S(X]"":", ",1:"")_$P($G(^GMRD(120.52,Y,0)),U,1)
  1. K APCHWP
  1. D WP^APCHS82(X,23)
  1. S APCHX=0,C=0 F S APCHX=$O(APCHWP(APCHX)) Q:APCHX'=+APCHX!($D(APCHSQIT)) D
  1. .X APCHSCKP Q:$D(APCHSQIT)
  1. .S C=C+1
  1. .I C>1 W !
  1. .W ?53,APCHWP(APCHX)
  1. W !
  1. Q
  1. LASTHV(P) ;get last H visit that is not contract
  1. NEW X,Y,V
  1. S V=""
  1. S X=0 F S X=$O(^AUPNVSIT("AAH",P,X)) Q:X'=+X!(V) D
  1. .S Y=0 F S Y=$O(^AUPNVSIT("AAH",P,X,Y)) Q:Y'=+Y D
  1. ..Q:'$D(^AUPNVSIT(Y,0))
  1. ..Q:$P(^AUPNVSIT(Y,0),U,3)="C" ;don't count contract visits
  1. ..S V=Y
  1. ..Q
  1. Q V