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

APCLDF.m

Go to the documentation of this file.
  1. APCLDF ; IHS/CMI/LAB - YRULER<->PCC INTERFACE ;
  1. ;;2.0;IHS PCC SUITE;**5,10**;MAY 14, 2009;Build 88
  1. ;The above line will be changed to be nonparameter as of the
  1. ;next version of this package. All callers should enter this
  1. ;routine at entry point START1^APCLDF(,,,)
  1. ;FIRST LINE PARAMETER PASS OKAY'ED BY SAC COMMITTEE TO ALLOW OTHER PACKAGES TO CHANGE THEIR CALLS
  1. ;
  1. G START2
  1. ;
  1. START1(APCLX,APCLY,APCLINT,APCLTYPE) ;PEP - PUBLISHED ENTRY POINT - main entry point for data fetcher utility
  1. START2 ;
  1. ;
  1. ; input vars via parameter pass (required):
  1. ; APCLX - contains the pt dfn^script
  1. ; APCLY - contains the array in which results to be sent back in
  1. ; ** IT IS THE RESPONSIBILITY OF THE CALLER TO KILL THE ARRAY
  1. ; ** PRIOR TO CALLING THIS ROUTINE
  1. ;
  1. ; input vars via parameter pass :
  1. ; APCLINT - set to 1 to invoke interactive mode
  1. ; - set to 0 or do not pass for background mode
  1. ;
  1. ; output vars:
  1. ; 1. APCLTYPE - returned (if APCLINT set) with file type, NV, D, etc.
  1. ; 2. ARRAY designated by caller (will be undefined if no hits or if
  1. ; error) note: array var will exist if demo. info asked for and
  1. ; value is null
  1. ; 3. APCLER - if error, set to a code delineated in APCLDF2, returned
  1. ; as value of function
  1. ; 4. APCLTYPE - returned with value of file type D, NV, or V
  1. ; (if APCLINT was set=1 and caller called by reference)
  1. ;
  1. START ;
  1. NEW %,C,D,E,I,N,X,Y,Z,COND,FILE,FLD,FN,HIT,LINE,LKUP,NUM,NVAL,PAT,SCRN,STP,TABLE,TAX,TVAL,TVAL2,TYPE,VAL,XREF,APCLTX,BOOL,DATE,STDATE,EDATE,APCLFILE,APCLER,DIC,B
  1. I '$D(APCLX) S APCLER=1 G XIT
  1. I '$D(APCLY) S APCLER=2 G XIT
  1. I $G(APCLINT) S APCLINT=""
  1. E K APCLINT
  1. D SETUP I $D(APCLER) G XIT
  1. I $E("PATIENT",1,$L($P(X," ")))=$P(X," ")!($P(X," ")="PT") D D^APCLDF4 G XIT
  1. D PARSE^APCLDF1
  1. D SET
  1. I $D(APCLER) G XIT
  1. D PROCESS^APCLDF1
  1. XIT ;
  1. K ^TMP("APCLDF",$J),^TMP("APCLTAX",$J)
  1. I '$D(APCLER) S APCLER=0
  1. Q APCLER
  1. ;
  1. SETUP ;
  1. K ^TMP("APCLDF",$J),^TMP("APCLTAX",$J),APCLER
  1. S U="^"
  1. NEW % F %=1:1:$L(APCLX) S:$E(APCLX,%)?1L APCLX=$E(APCLX,0,%-1)_$C($A(APCLX,%)-32)_$E(APCLX,%+1,999)
  1. S PAT=$P(APCLX,U),X=$P(APCLX,U,2)
  1. I X="" S APCLER=6
  1. Q
  1. ;
  1. SET ;
  1. ; Rosetta Stone for the text line is:
  1. ; FILE;TYPE;LOOKUP GLOBAL;PCC GLOBAL;SCREEN;QMAN TERM FOR TAXONOMY;TABLE XREF;SAVED;SAVED;SYNONYM;SYNONYM;SYNONYM
  1. ;F I=1:1 S:$T(LKUP+I)=""&('$D(HIT)) APCLER=5 Q:$D(APCLER)!($T(LKUP+I)="") I $E($P($T(LKUP+I),";",3),1,$L(FILE))=FILE!($P($T(LKUP+I),";",12,99)[FILE) S:$D(HIT) APCLER=12 S HIT=I K APCLHIT
  1. F I=1:1 S:$T(LKUP+I)=""&('$D(HIT)) APCLER=5 Q:$D(APCLER)!($T(LKUP+I)="") D I $E($P($T(LKUP+I),";",3),1,$L(FILE))=FILE!$D(APCLHIT) S:$D(HIT) APCLER=12 S HIT=I K APCLHIT
  1. . NEW APCLI
  1. . F APCLI=12:1:99 Q:$P($T(LKUP+I),";",APCLI)=""!$D(APCLHIT) S APCLTXT=$P($T(LKUP+I),";",APCLI) I $E(APCLTXT,1,$L(FILE))=FILE S APCLHIT="" Q
  1. . K APCLTXT
  1. I $D(APCLER) G X1
  1. S LINE=$P($T(LKUP+HIT),";",3,99)
  1. I $D(APCLINT) S APCLFILE=$P(LINE,";")
  1. S TYPE=$P(LINE,";",2)
  1. I $D(APCLINT) S APCLTYPE=TYPE
  1. S TABLE=$P(LINE,";",3)
  1. S LKUP=$P(LINE,";",4)
  1. I $D(APCLINT) S APCLFILE=$P(@LKUP@(0),U)
  1. S SCRN=$P(LINE,";",5)
  1. S TAX=$P(LINE,";",6)
  1. I TAX="",(VAL["["!(VAL="*")) S APCLER=3 G X1
  1. I VAL="*",TAX]"",$D(APCLINT) D TAX
  1. S XREF=$P(LINE,";",7)
  1. X1 Q
  1. ;
  1. TAX ; User may create a taxonomy if they choose
  1. S X=TAX,DIC="^AMQQ(5,",DIC(0)="FM",DIC("S")="I $P(^(0),U,14)" D ^DIC I Y=-1 S APCLER=7 G X5
  1. S X=+Y D EN1^AMQQTX I '$D(^UTILITY("AMQQ TAX",$J)) S APCLER=11 G X5
  1. I $G(AMQQTDFN)>0 S VAL="["_$P(^ATXAX(AMQQTDFN,0),U)_"]"
  1. I $D(^UTILITY("AMQQ TAX",$J)) D
  1. . S T=$O(^UTILITY("AMQQ TAX",$J,""))
  1. . F TX=0:0 S TX=$O(^UTILITY("AMQQ TAX",$J,T,TX)) Q:'TX S ^TMP("APCLTAX",$J,TX)=""
  1. . K ^UTILITY("AMQQ TAX")
  1. K AMQQCCLS,AMQQCNAM,AMQQDF,AMQQQ,AMQQTAX,AMQQURGN,AMQQTDFN,AMQQQUIT,AMQQECHO,AMQQGTX,AMQQTAXT,AMQQTGBL
  1. X5 Q
  1. ;
  1. LKUP ; D=Demographic, VI="AA" xref doesn't include .01 ptr val, VV does, NV is non-"V" file,VISIT=VISIT file
  1. ;;PURPOSE OF VISITS;VI;^ICD9;^AUPNVPOV;;DIAGNOSIS;BA;;;POV;DX;DIAGNOSIS
  1. ;;DENTAL SERVICES;VI;^AUTTADA;^AUPNVDEN;;ADA CODE;BA;;;ADA CODE
  1. ;;EXAMINATIONS;VV;^AUTTEXAM;^AUPNVXAM;;;B;;;EXAMS
  1. ;;VISIT;VISIT;;^AUPNVSIT;;;B;;;VISITS
  1. ;;MEDICATIONS;VI;^PSDRUG;^AUPNVMED;;RX;B;;;RX;MEDS
  1. ;;LABS;VV;^LAB(60);^AUPNVLAB;;LAB TAX;B;;;LABORATORY;LAB TESTS
  1. ;;MEASUREMENTS;VV;^AUTTMSR;^AUPNVMSR;;;B
  1. ;;PROCEDURES;VI;^ICD0;^AUPNVPRC;;PROCEDURE (MEDICAL);BA;;;
  1. ;;SKIN TESTS;VV;^AUTTSK;^AUPNVSK;;;B
  1. ;;IMMUNIZATIONS;VV;^AUTTIMM;^AUPNVIMM;;;B
  1. ;;DIAGNOSTIC PROCEDURE;VV;^AUTTDXPR;^AUPNVDXP;;;B
  1. ;;RADIOLOGY;VV;^RAMIS(71);^AUPNVRAD;;;B;;;XRAY;FILMS;RADIOLOGY STUDIES
  1. ;;EDUCATION;VI;^AUTTEDT;^AUPNVPED;;PATIENT ED TOPIC;B;;;PT EDUCATION;EDUCATION TOPICS;PATIENT ED
  1. ;;ACTIVE PROBLEMS;NV;^ICD9;^AUPNPROB;I $P(@LKUP@(D,0),U,12)'="D",$P(@LKUP@(D,0),U,12)'="I";PROBLEM LIST DIAGNOSIS;BA
  1. ;;PROBLEMS;NV;^ICD9;^AUPNPROB;I $P(@LKUP@(D,0),U,12)'="D";PROBLEM LIST DIAGNOSIS;BA
  1. ;;INACTIVE PROBLEMS;NV;^ICD9;^AUPNPROB;I $P(@LKUP@(D,0),U,12)="I";PROBLEM LIST DIAGNOSIS;BA
  1. ;;FAMILY HISTORY;NV;^ICD9;^AUPNFH;;DIAGNOSIS;BA
  1. ;;PERSONAL HISTORY;NV;^ICD9;^AUPNPH;;DIAGNOSIS;BA
  1. ;;HLTH STATUS;NV;^AUTTHF;^AUPNHF;;HEALTH FACTORS;B
  1. ;;HEALTH FACTORS;VV;^AUTTHF;^AUPNVHF;;HEALTH FACTORS;B;;;HEALTH STATUS