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

PSSDSAPB.m

Go to the documentation of this file.
PSSDSAPB ;CAN/EJD - Dose Check APIs routine (continued) ; Aug 22, 2023@10:03
 ;;1.0;PHARMACY DATA MANAGEMENT;**254**;9/30/97;Build 109
 ;
STN1 ;Standard Logic continue - called by PSSDSAPI@STN
 K PSSFWAA,PSSFWAAD
 S PSSDCF=$$DCFSCH^PSSSCHMS(PSSFWLP2,$G(PSSDRG),$G(PSSFWDRL))
 ;PSS*1*206
 I PSSDCF="",(PSSFWSC[" PRN") D
 . NEW PSSX
 . S PSSX=PSSFWLP2
 . I ($P(PSSFWSC," PRN",1)'=""),($P(PSSFWSC," PRN",1)'?." ") S PSSFWLP2=$O(^PS(51.1,"APPSJ",$P(PSSFWSC," PRN",1),0))
 . S:+PSSFWLP2 PSSDCF=$$DCFSCH^PSSSCHMS(PSSFWLP2,$G(PSSDRG),$G(PSSFWDRL))
 . S PSSFWLP2=PSSX
 I PSSDCF]"" S (PSSFWPR1,PSSFWFLG,PSSDCFLG)=1,PSSFWRST=$P(PSSDCF,U),PSSFWPR7=$P(PSSDCF,U,2) Q
 S PSSFWAA=$P($G(^PS(51.1,PSSFWLP2,0)),"^",3)
 Q:'$G(PSSFWAA)
 S PSSFWAAD=1440/PSSFWAA
 I PSSFWAAD?.N S PSSFWRST=PSSFWAAD,PSSFWFLG=1 Q
 I (PSSFWAA<1440),((PSSFWAA/60)?.N) S PSSFWRST="Q"_(PSSFWAA/60)_"H",PSSFWFLG=1 Q
 I PSSFWAAD>1 Q
 S PSSFWAAM=PSSFWAA/1440
 I PSSFWAAM'?.N D  Q
 . S PSSFWFLG=1,PSSFWRST="",PSSDIVFG=1
 . I (PSSFWAA/60)?.N S PSSFWRST="Q"_(PSSFWAA/60)_"H"
 I PSSFWAAM?.N D  Q
 .S PSSFWAMN=PSSFWAAM/30 I PSSFWAMN?.N S PSSFWFLG=1,PSSFWRST="Q"_PSSFWAMN_"L" Q
 .I PSSFWAAM=365 S PSSFWFLG=1,PSSFWRST="Q12L" Q   ;254
 .S PSSFWAWK=PSSFWAAM/7 I PSSFWAWK?.N S PSSFWFLG=1,PSSFWRST="Q"_PSSFWAWK_"W" Q
 .S PSSFWFLG=1,PSSFWRST="Q"_PSSFWAAM_"D" Q
 I PSSFWAA'>10080 S PSSFWAXW=10080/PSSFWAA I PSSFWAXW?.N S PSSFWFLG=1,PSSFWRST=PSSFWAXW_"XW" Q
 S PSSFWAXL=43200/PSSFWAA I PSSFWAXL?.N S PSSFWFLG=1,PSSFWRST=PSSFWAXL_"XL" Q
 Q
 ;
STNO1 ;Standard Logic part 2, using File 51, For Outpatient Orders only - called by PSSDSAPI@STNO
 K PSSFWBA,PSSFWBAD
 S PSSDCF=$$DCF51^PSSSCHMS(PSSFWLP3,$G(PSSDRG),$G(PSSFWDRL))
 I PSSDCF]"" S (PSSFWPR1,PSSFWFLG,PSSDCFLG)=1,PSSFWRST=$P(PSSDCF,U),PSSFWPR7=$P(PSSDCF,U,2) Q
 S PSSFWBA=$P($G(^PS(51,PSSFWLP3,0)),"^",8)
 Q:'$G(PSSFWBA)
 S PSSFWBAD=1440/PSSFWBA
 I PSSFWBAD?.N S PSSFWRST=PSSFWBAD,PSSFWFLG=1 Q
 I (PSSFWBA<1440),((PSSFWBA/60)?.N) S PSSFWRST="Q"_(PSSFWBA/60)_"H",PSSFWFLG=1 Q
 ;PSSDECNO=1 when the admin time is not a whole #(dosing error message should display)
 I PSSFWBAD>1 S PSSFWFLG=0,PSSDECNO=1 Q
 S PSSFWBAM=PSSFWBA/1440
 I PSSFWBAM'?.N S PSSFWFLG=1,PSSFWRST="",PSSDIVFG=1 Q
 I PSSFWBAM?.N D  Q
 .S PSSFWBMN=PSSFWBAM/30 I PSSFWBMN?.N S PSSFWFLG=1,PSSFWRST="Q"_PSSFWBMN_"L" Q
 .I PSSFWBAM=365 S PSSFWFLG=1,PSSFWRST="Q12L" Q   ;254
 .S PSSFWBWK=PSSFWBAM/7 I PSSFWBWK?.N S PSSFWFLG=1,PSSFWRST="Q"_PSSFWBWK_"W" Q
 .S PSSFWFLG=1,PSSFWRST="Q"_PSSFWBAM_"D" Q
 I PSSFWBA'>10080 S PSSFWBXW=10080/PSSFWBA I PSSFWBXW?.N S PSSFWFLG=1,PSSFWRST="X"_PSSFWBXW_"W" Q
 S PSSFWBXL=43200/PSSFWBA I PSSFWBXL?.N S PSSFWFLG=1,PSSFWRST="X"_PSSFWBXL_"L" Q
 Q
 ;
NOEXPF ;254 Check for exceptions to frequency
 ;Called by PSSDSAPK@NOEXP
 N PSSTEXT
 I '$D(^TMP($J,PSSDBASE,"OUT","DOSE","ERROR",PSSDBFDB(1,"RX_NUM"),1,"TEXT")) Q
 S PSSTEXT=$G(^TMP($J,PSSDBASE,"OUT","DOSE","ERROR",PSSDBFDB(1,"RX_NUM"),1,"TEXT"))
 I PSSTEXT["Weight is required" Q
 I PSSTEXT["Body surface area is required" Q
 K ^TMP($J,PSSDBASE,"OUT","EXCEPTIONS","DOSE",PSSDWE1,PSSNOE1)
 Q