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

AMQQN.m

Go to the documentation of this file.
  1. AMQQN ; IHS/CMI/THL - NATURAL LANGUAGE INTERPRETER ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;-----
  1. I AMQQQSTG="" G EXIT
  1. S X=AMQQQSTG
  1. S AMQQNN=1
  1. S AMQQXX=""
  1. W !!
  1. D WAIT^DICD
  1. W !!
  1. RUN F AMQQNRUN=0,1,2 D @("^AMQQN"_AMQQNRUN) I $D(AMQQFAIL) D FAIL,KILL,KILL1 G EXIT
  1. D SET
  1. D KILL
  1. D AND
  1. I $D(AMQQFAIL) D FAIL G EXIT
  1. D EN1^AMQQQ2,KILL1
  1. S AMQV("OPTION")="LIST"
  1. S AMQQXX("FORMAT")=1
  1. D ^AMQQCMPL
  1. EXIT K AMQQONE,AMQQXX,AMQQNTAX,AMQQFAIL,%,%Y,A,B,C,I,J,N,S,Z,C
  1. Q
  1. ;
  1. SET S AMQQXX(0)=AMQQNSBJ
  1. S AMQQNA=1
  1. I "^MALES^BOYS^MEN^"[(U_AMQQNSBJ_U) S AMQQXX(99.1,1)="3^SEX;11^IS;M" G SET1
  1. I "^FEMALES^GIRLS^WOMEN"[(U_AMQQNSBJ_U) S AMQQXX(99.1,1)="3^SEX;11^IS;F" G SET1
  1. I AMQQNSBJ="INFANTS" S AMQQXX(.1,1)="33^AGE;39^LESS THAN;1" G SET1
  1. SET1 I $D(AMQQFAIL) Q
  1. S AMQQNSVL=$G(AMQQNSVL)
  1. I $D(AMQQNATT),$D(AMQQNCND),$D(AMQQNVAL)
  1. E Q
  1. I '$G(AMQQCTXS) S AMQQXX(AMQQNA,1)=AMQQNATT_";"_AMQQNCND_";"_AMQQNVAL Q
  1. S AMQQXX(AMQQNA,1)=$S($G(AMQQNCND)="MTAX":(AMQQNATT_";MTAX;"_AMQQNVAL),1:(AMQQNATT_";MULT"))
  1. I "MTAX"[$G(AMQQNCND),$G(AMQQNSUB)="" Q
  1. I $G(AMQQNCND)="" S AMQQXX(AMQQNA,1,1,1)=AMQQNSCD_";"_AMQQNSVL Q
  1. I $G(AMQQNSUB)="" S AMQQXX(AMQQNA,1,1,1)=AMQQNCND_";"_AMQQNVAL Q
  1. I AMQQNSTP="O",'$D(AMQQNISF),$D(AMQQONE) S AMQQXX(AMQQNA,1,2,1)=AMQQNSCD_";"_AMQQNSVL,AMQQXX(AMQQNA,1,1,1)=AMQQNCND_";"_AMQQNVAL Q
  1. S AMQQXX(AMQQNA,1,2,1)=AMQQNCND_";"_AMQQNVAL
  1. S AMQQXX(AMQQNA,1,1,1)=AMQQNSCD_";"_AMQQNSVL
  1. Q
  1. ;
  1. KILL K AMQQNATT,AMQQNCND,AMQQNN,AMQQNRUN,AMQQNSBJ,AMQQNSCD,AMQQNSTP,AMQQNSUB,AMQQNSVL,AMQQNVAL,AMQQQ,AUPNDAYS,AUPNDOB,AUPNDOD,AUPNPAT,AUPNSEX,A,B,I,J,S,X,Y,Z,%,%Y,AMQQCTXS,AMQQLINK
  1. Q
  1. ;
  1. KILL1 K AMQQLSQF,AMQQATN,AMQQATNM,AMQQMMCC,AMQQMULT,AMQQQSTG,N,AMQQQ,AMQQYYYY,I,N,X,Y,Z,AMQQCNAM,AMQQXX,AMQQXXND,AMQQYYAT,AMQQNA,AMQQNAP
  1. Q
  1. ;
  1. FAIL ;EP;
  1. I $G(AMQQFAIL)=-1 Q
  1. I $D(AMQQNSF) K AMQQNSF D KILL Q
  1. I AMQQFAIL=4 W !!,"I'm unable to identify the subject of the query...try again",!!,*7 G F1
  1. W !!,"Sorry, I don't understand your query. Check for spelling errors and typos."
  1. W !,"If this fails, try rewording the query. If you still fail, dont blame me..."
  1. W !,"After all, I'm only a stupid machine!!",!!,*7
  1. F1 R "<>",%:DTIME E S AMQQQUIT=""
  1. D KILL
  1. Q
  1. ;
  1. AND F AMQQNAP=1:0 S AMQQNAP=$O(AMQQNAP(AMQQNAP)) Q:'AMQQNAP S AMQQNA=AMQQNA+1 S X=AMQQNAP(AMQQNAP) D ^AMQQN2,SET1,KILL I $D(AMQQFAIL) Q
  1. Q
  1. ;