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

APSQNF.m

Go to the documentation of this file.
  1. APSQNF ;IHS/ASDS/ENM/POC - PROGRAM TO DEAL WITH NON FORMULARY REQUEST
  1. ;;6.0;IHS PHARMACY MODIFICATIONS;**3**;FEB 20, 2001
  1. ;FIRST CHECK IF IEN OF DRUG AND PT DFN
  1. ;!!! DONT FORGET TO SET FLAG APSQNF TO SET FIELD RX POINTER WHEN PRINT
  1. Q:('$D(PSODFN))!('$D(PSODRUG("IEN")))
  1. Q:'($P($G(^PSDRUG(PSODRUG("IEN"),0)),"^",9)) ;CHECK STATUS OF NF FIELD
  1. INIT S U="^"
  1. D NF(PSODRUG("IEN"),PSODFN) ;CHECK FOR ANY NON FORMULARY REQUESTS FOR THIS PATIENT AND DRUG IN FORM OF APSQDT ARRAY
  1. ;
  1. I APSQLAST=0 W !,"A NON FORMULARY REQUEST DOES NOT EXISTS FOR THIS PATIENT FOR THIS DRUG" S APSQDIR=1
  1. I APSQLAST>0,$P(APSQLAST(APSQLAST),U,2) W !,"A NON FORMULARY REQUEST EXISTS FOR THIS PATIENT DATED "_$$FMTE^XLFDT(9999999-APSQLAST),!,"BUT PRESCRIPTION # ",+^PSRX(APSQLAST(APSQLAST,U,2),0)," HAS BEEN FILLED FOR IT" S APSQDIR=2
  1. I APSQLAST>0,'$P(APSQLAST(APSQLAST),U,2) W !,"NON FORMULARY REQUEST ON FILE FOR THIS PATIENT AND DRUG DATED "_$$FMTE^XLFDT(9999999-APSQLAST) S APSQDIR=3
  1. D DIR
  1. ;W !,"GOT HERE"
  1. NF(DRUG,PATIENT) ;CHECKS FOR NON FORMULARY REQUESTS FOR THIS PATIENT AND DRUG
  1. K APSQDT
  1. I '$D(^PSNF("M",DRUG,PATIENT)) S APSQLAST=0,APSQLAST(APSQLAST)="NONE" Q
  1. S APSQDAT="" F S APSQDAT=$O(^PSNF("M",DRUG,PATIENT,APSQDAT)) Q:APSQDAT="" D ;
  1. .S APSQIEN=^PSNF("M",DRUG,PATIENT,APSQDAT)
  1. .S APSQRX=$P(^PSNF(APSQIEN,0),U,13)
  1. .S APSQDT(9999999-APSQDAT)=APSQIEN_U_APSQRX ;GOT THE IEN AND IF RX FILLED FOR THIS NON FORMULARY REQUEST
  1. S APSQLAST=$O(APSQDT(""))
  1. S APSQLAST(APSQLAST)=APSQDT(APSQLAST)
  1. K APSQDAT,APSQDT
  1. Q
  1. ;
  1. DIR ;ASK QUESTION
  1. Q:APSQDIR=3
  1. S DIR(0)="S^1:ADD A NON-FORMULARY REQUEST ON THE FLY;2:DELETE THE DRUG;3:NOTHING"
  1. S DIR("A")="WHAT DO YOU WANT TO DO?"
  1. S DIR("B")=3
  1. D ^DIR
  1. I $D(DIRUT)!($D(DUOUT))!($D(DTOUT)) S Y=3
  1. K DIR,DIRUT,DUOUT,DTOUT
  1. Q
  1. ;
  1. XREF(EN,SETKILL) ;CROSS REFERENCE ROUTINE
  1. Q:'$G(EN) Q:'$G(SETKILL) ;SOMETHING WRONG
  1. S OUTDIEN=$O(^PSDRUG("B","OUTSIDE DRUG",""))
  1. ;Q:OUTDIEN="" ;NO OUTSIDE DRUG!!!
  1. I 'OUTDIEN S LOCAL("DIMSG")="NO DRUG ENTRY 'OUTSIDE DRUG'-ENTER ONE!!" D MSG^DIALOG("WM","","","","LOCAL") S DIK="^APSQNF(" D ^DIK K DIK Q
  1. I SETKILL="ADD" D ADD
  1. I SETKILL="KILL" D KILL
  1. Q
  1. ADD ;ADD A XREF
  1. ;DRUG FIELD
  1. I EN=.01 I $P(^PSNF(DA,0),U,10),$P(^(0),U,12) D
  1. .I X'=OUTDIEN S ^PSNF("M",X,$P(^(0),U,10),$P(^(0),U,12))=DA Q
  1. .I $P(^PSNF(DA,0),U,2) S ^PSNF("M",X,$P(^(0),U,2),$P(^(0),U,12))=DA
  1. Q
  1. ;FREE TEXT FIELD
  1. I EN=1
  1. KILL ;KILL A XREF
  1. I EN=.01 I $P(^PSNF(DA,0),U,10),$P(^(0),U,12) D
  1. .I X'=OUTDIEN K ^PSNF("M",X,$P(^(0),U,10),$P(^(0),U,12)) Q
  1. .I $P(^PSNF(DA,0),U,2) K ^PSNF("M",X,$P(^(0),U,2),$P(^(0),U,12))
  1. Q