diff --git a/m/BSDX07.m b/m/BSDX07.m index e205214..9b2856a 100644 --- a/m/BSDX07.m +++ b/m/BSDX07.m @@ -1,4 +1,4 @@ -BSDX07 ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; ; 7/6/10 6:13am +BSDX07 ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; ; 7/6/10 4:28pm ;;2.0;IHS WINDOWS SCHEDULING;;NOV 01, 2007 ; v1.3 July 13 2010 - Add support i18n - Dates input as FM dates, not US. ; @@ -110,9 +110,11 @@ STRIP(BSDXZ) ;Replace control characters with spaces BSDXADD(BSDXSTART,BSDXEND,BSDXPATID,BSDXRESD,BSDXATID) ;ADD BSDX APPOINTMENT ENTRY ;Returns ien in BSDXAPPT or 0 if failed ;Create entry in BSDX APPOINTMENT + ; BSDXSTART and BSDXEND need to be stored as numeric, not string + ; So 3090713.0900 is incorrect --> it should be 3090713.09 N BSDXAPPTID - S BSDXFDA(9002018.4,"+1,",.01)=BSDXSTART - S BSDXFDA(9002018.4,"+1,",.02)=BSDXEND + S BSDXFDA(9002018.4,"+1,",.01)=+BSDXSTART ; smh fix bug stores as string + S BSDXFDA(9002018.4,"+1,",.02)=+BSDXEND S BSDXFDA(9002018.4,"+1,",.05)=BSDXPATID S BSDXFDA(9002018.4,"+1,",.07)=BSDXRESD S BSDXFDA(9002018.4,"+1,",.08)=$G(DUZ) diff --git a/m/BSDX28.m b/m/BSDX28.m index 96c7812..92b79d7 100644 --- a/m/BSDX28.m +++ b/m/BSDX28.m @@ -1,25 +1,48 @@ -BSDX28 ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; +BSDX28 ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; 7/6/10 3:55pm ;;2.0;IHS WINDOWS SCHEDULING;;NOV 01, 2007 ; - ;HMW 20050721 Added test for inactivated record + ; HMW 3050721 Added test for inactivated record + ; SMH 3100714 add PID search, return PID instead of SSN + ; Change Error trap to new style. ; PTLOOKRS(BSDXY,BSDXP,BSDXC) ;EP Patient Lookup ; ;Find up to BSDXC patients matching BSDXP* - ;Supports DOB Lookup, SSN Lookup + ;Supports DOB Lookup, Primary Long ID lookup ; - S X="ERROR^BSDX28",@^%ZOSF("TRAP") + N $ET S $ET="G ERROR^BSDX28" + ; rm ctrl chars S BSDXP=$TR(BSDXP,$C(13),"") S BSDXP=$TR(BSDXP,$C(10),"") S BSDXP=$TR(BSDXP,$C(9),"") + ; num of pts to find S:BSDXC="" BSDXC=10 N BSDXHRN,BSDXZ,BSDXDLIM,BSDXRET,BSDXDPT,BSDXRET,BSDXIEN,BSDXFILE N BSDXIENS,BSDXFIELDS,BSDXFLAGS,BSDXVALUE,BSDXNUMBER,BSDXINDEXES,BSDXSCREEN N BSDXTARG,BSDXMSG,BSDXRSLT S BSDXDLIM="^" - S BSDXRET="T00030NAME^T00030HRN^T00030SSN^D00030DOB^T00030IEN"_$C(30) + S BSDXRET="T00030NAME^T00030HRN^T00030PID^D00030DOB^T00030IEN"_$C(30) I '+$G(DUZ) S BSDXY=BSDXRET_$C(31) Q I '$D(DUZ(2)) S BSDXY=BSDXRET_$C(31) Q + +PID ;PID Lookup + ; If this ID exists, go get it. If "UJOPID" index doesn't exist, + ; won't work anyways. + I $D(^DPT("UJOPID",BSDXP)) DO SET BSDXY=BSDXRET_$C(31) QUIT + . S BSDXIEN=$O(^DPT("UJOPID",BSDXP,"")) + . Q:'$D(^DPT(BSDXIEN,0)) + . S BSDXDPT=$G(^DPT(BSDXIEN,0)) + . S BSDXZ=$P(BSDXDPT,U) ;NAME + . S BSDXHRN=$P($G(^AUPNPAT(BSDXIEN,41,DUZ(2),0)),U,2) ;CHART + . I BSDXHRN="" Q ;NO CHART AT THIS DUZ2 + . ; Inactivated Chart get an * + . I $P($G(^AUPNPAT(BSDXIEN,41,DUZ(2),0)),U,3) S BSDXHRN=BSDXHRN_"(*)" Q + . S $P(BSDXZ,BSDXDLIM,2)=BSDXHRN + . S $P(BSDXZ,BSDXDLIM,3)=$P(^DPT(BSDXIEN,.36),U,3) ;PID + . S Y=$P(BSDXDPT,U,3) X ^DD("DD") + . S $P(BSDXZ,BSDXDLIM,4)=Y ;DOB + . S $P(BSDXZ,BSDXDLIM,5)=BSDXIEN + . S BSDXRET=BSDXRET_BSDXZ_$C(30) ; DOB ;DOB Lookup I +DUZ(2),((BSDXP?1.2N1"/"1.2N1"/"1.4N)!(BSDXP?1.2N1" "1.2N1" "1.4N)!(BSDXP?1.2N1"-"1.2N1"-"1.4N)) D S BSDXY=BSDXRET_$C(31) Q @@ -33,7 +56,7 @@ DOB ;DOB Lookup . . I BSDXHRN="" Q ;NO CHART AT THIS DUZ2 . . I $P($G(^AUPNPAT(BSDXIEN,41,DUZ(2),0)),U,3) S BSDXHRN=BSDXHRN_"(*)" Q ;HMW 20050721 Record Inactivated . . S $P(BSDXZ,BSDXDLIM,2)=BSDXHRN - . . S $P(BSDXZ,BSDXDLIM,3)=$P(BSDXDPT,U,9) ;SSN + . . S $P(BSDXZ,BSDXDLIM,3)=$P(^DPT(BSDXIEN,.36),U,3) ;PID . . S Y=$P(BSDXDPT,U,3) X ^DD("DD") . . S $P(BSDXZ,BSDXDLIM,4)=Y ;DOB . . S $P(BSDXZ,BSDXDLIM,5)=BSDXIEN @@ -41,7 +64,8 @@ DOB ;DOB Lookup . . Q . Q ; - ;Chart# Lookup +CHART + ;Chart# Lookup I +DUZ(2),BSDXP]"",$D(^AUPNPAT("D",BSDXP)) D S BSDXY=BSDXRET_$C(31) Q . S BSDXIEN=0 F S BSDXIEN=$O(^AUPNPAT("D",BSDXP,BSDXIEN)) Q:'+BSDXIEN I $D(^AUPNPAT("D",BSDXP,BSDXIEN,DUZ(2))) D Q . . Q:'$D(^DPT(BSDXIEN,0)) @@ -50,15 +74,15 @@ DOB ;DOB Lookup . . S BSDXHRN=BSDXP ;CHART . . I $D(^AUPNPAT(BSDXIEN,41,DUZ(2),0)),$P(^(0),U,3) S BSDXHRN=BSDXHRN_"(*)" Q ;HMW 20050721 Record Inactivated . . S $P(BSDXZ,BSDXDLIM,2)=BSDXHRN - . . S $P(BSDXZ,BSDXDLIM,3)=$P(BSDXDPT,U,9) ;SSN + . . S $P(BSDXZ,BSDXDLIM,3)=$P(^DPT(BSDXIEN,.36),U,3) ;PID . . S Y=$P(BSDXDPT,U,3) X ^DD("DD") . . S $P(BSDXZ,BSDXDLIM,4)=Y ;DOB . . S $P(BSDXZ,BSDXDLIM,5)=BSDXIEN . . S BSDXRET=BSDXRET_BSDXZ_$C(30) . . Q . Q - ; - ;SSN Lookup + ; +SSN ;SSN Lookup I (BSDXP?9N)!(BSDXP?3N1"-"2N1"-"4N),$D(^DPT("SSN",BSDXP)) D S BSDXY=BSDXRET_$C(31) Q . S BSDXIEN=0 F S BSDXIEN=$O(^DPT("SSN",BSDXP,BSDXIEN)) Q:'+BSDXIEN D Q . . Q:'$D(^DPT(BSDXIEN,0)) @@ -68,7 +92,7 @@ DOB ;DOB Lookup . . I BSDXHRN="" Q ;NO CHART AT THIS DUZ2 . . I $P($G(^AUPNPAT(BSDXIEN,41,DUZ(2),0)),U,3) S BSDXHRN=BSDXHRN_"(*)" Q ;HMW 20050721 Record Inactivated . . S $P(BSDXZ,BSDXDLIM,2)=BSDXHRN - . . S $P(BSDXZ,BSDXDLIM,3)=$P(BSDXDPT,U,9) ;SSN + . . S $P(BSDXZ,BSDXDLIM,3)=$P(^DPT(BSDXIEN,.36),U,3) ;PID . . S Y=$P(BSDXDPT,U,3) X ^DD("DD") . . S $P(BSDXZ,BSDXDLIM,4)=Y ;DOB . . S $P(BSDXZ,BSDXDLIM,5)=BSDXIEN @@ -98,7 +122,7 @@ DOB ;DOB Lookup . I $P($G(^AUPNPAT(BSDXIEN,41,DUZ(2),0)),U,3) S BSDXHRN=BSDXHRN_"(*)" Q ;HMW 20050721 Record Inactivated . S $P(BSDXZ,BSDXDLIM,2)=BSDXHRN . S BSDXDPT=$G(^DPT(BSDXIEN,0)) - . S $P(BSDXZ,BSDXDLIM,3)=$P(BSDXDPT,U,9) ;SSN + . S $P(BSDXZ,BSDXDLIM,3)=$P(^DPT(BSDXIEN,.36),U,3) ;PID . S Y=$P(BSDXDPT,U,3) X ^DD("DD") . S $P(BSDXZ,BSDXDLIM,4)=Y ;DOB . S $P(BSDXZ,BSDXDLIM,5)=BSDXIEN