BMXADOI ; IHS/CIHA/GIS - RPC CALL: GENERATE DATA FOR AN ADO DATASET ; ;;2.1;BMX;;Jul 26, 2009 ; CUSTOM IDENTIFIERS ; ; ; DEMOID(DA) ; EP-RETURN RPMS DEMOGRAPHIC INFO FOR IDENTIFIER FIELD N SEX,DOB,CHART,AGE,TRIBE,CC,X,Y,%,STG,FMDOB,NAME,S,SSN,CSTG,LOC,ABB I '$D(^DPT(+$G(DA),0)) Q "" S S=" " S X=$G(^DPT(DA,0)),SEX=$P(X,U,2),Y=$P(X,U,3),NAME=$P(X,U),SSN=$P(X,U,9) I '$L(NAME) Q "" I Y,$G(DT) S AGE=(DT-Y)\10000 I Y X ^DD("DD") S DOB=Y S LOC=0,CSTG="" F S LOC=$O(^AUPNPAT(DA,41,"B",LOC)) Q:'LOC D ; GET ALL THE CHART NUMBERS . S CHART=$O(^AUPNPAT(DA,41,"B",LOC,0)) I '$L(CHART) Q . S ABB=$P($G(^AUTTLOC(LOC,0)),U,7) I '$L(ABB) Q . I $L(CSTG) S CSTG=CSTG_", " . S CSTG=CSTG_ABB_" #"_CHART . Q I $G(DUZ(2)) S CHART=$P($G(^AUPNPAT(DA,41,DUZ(2),0)),U,2) S %=$P($G(^AUPNPAT(DA,11)),U,8) I % S TRIBE=$P($G(^AUTTTRI(%,0)),U) S CC=$P($G(^AUPNPAT(DA,11)),U,18) S STG=NAME I $L(CSTG) S STG=STG_CSTG_" --" I $G(AGE),$L(SEX) S STG=STG_S_AGE_" y/o "_SEX I '$G(AGE),$L(SEX) S STG=STG_S_SEX I $L($G(DOB)) S STG=STG_S_DOB I $L($G(SSN)) S STG=STG_S_$E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,9) I $L($G(TRIBE)) S STG=STG_S_TRIBE I $L($G(CC)) S STG=STG_S_CC Q STG ; DATE(DATE) ; TEST TRIGGER Q DATE ; NAME(VIEN) ; RETURN THE PATIENT'S NAME I '$G(VIEN) Q "" N DFN S DFN=$P($G(^AUPNVSIT(VIEN,0)),U,5) I 'DFN Q "" Q $$GET1^DIQ(2,DFN_",",.01) ; SEX(VIEN) ; RETURN THE PATIENT'S SEX I '$G(VIEN) Q "" N DFN S DFN=$P($G(^AUPNVSIT(VIEN,0)),U,5) I 'DFN Q "" Q $$GET1^DIQ(2,DFN_",",.02) ; HRN(VIEN) ; RETURN THE CHART NUMBER FOR VISIT TRIGGER I '$G(VIEN) Q "" N DFN,LOC S DFN=$P($G(^AUPNVSIT(VIEN,0)),U,5) I 'DFN Q "" S LOC=$P($G(^AUPNVSIT(VIEN,0)),U,6) I 'LOC Q "" Q $$HRN^AUPNPAT(DFN,LOC,2) ; DOB(VIEN) ; RETURN THE PATIENT'S DOB I '$G(VIEN) Q "" N DFN,LOC S DFN=$P($G(^AUPNVSIT(VIEN,0)),U,5) I 'DFN Q "" Q $$DOB^AUPNPAT(DFN,"E") ; SSN(VIEN) ; RETURN THE PATIENTS DOB I '$G(VIEN) Q "" N DFN,LOC S DFN=$P($G(^AUPNVSIT(VIEN,0)),U,5) I 'DFN Q "" Q $$SSN^AUPNPAT(DFN) ; VISDATE(VIEN) ; RETURN THE DATE OF THE VISIT I '$G(VIEN) Q "" N FMDT S FMDT=+$G(^AUPNVSIT(VIEN,0))\1 I 'FMDT Q "" S %=$$FMTE^XLFDT(FMDT,1) G TD1 ; TODAY(VIEN) ; RETURN TODAY'S DATE I '$G(DT) Q "" S %=$$FMTE^XLFDT(DT,1) TD1 S %=$$UP^XLFSTR(%) S %=$P(%," ",1,2)_$P(%," ",3) Q % ;