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

AUPNSIC9.m

Go to the documentation of this file.
  1. AUPNSIC9 ; IHS/CMI/LAB - Screen Purpose of Visit/ICD9 codes 24-MAY-1993 ;
  1. ;;2.0;IHS PCC SUITE;**2,10,11**;MAY 14, 2009;Build 58
  1. ;
  1. ASKLIST() ;
  1. NEW X,Y,%,I,D,DIR,DIE,DA,DIC,DIRUT,DUOUT
  1. S DIR(0)="Y",DIR("A")="Do you want the entire ICD DIAGNOSIS List",DIR("B")="N" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) Q 0
  1. I 'Y Q 0
  1. Q 1
  1. ASKLISTO() ;
  1. NEW X,Y,%,I,D,DIR,DIE,DA,DIC,DIRUT,DUOUT
  1. S DIR(0)="Y",DIR("A")="Do you want the entire ICD OPERATION/PROCEDURE List",DIR("B")="N" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) Q 0
  1. I 'Y Q 0
  1. Q 1
  1. EOP ;
  1. S AUPNQ=0
  1. NEW DIR,D
  1. NEW DIRUT,DFOUT,DLOUT,DTOUT,DUOUT
  1. S DIR(0)="E" D ^DIR K DIR
  1. I $D(DUOUT) S AUPNQ=1 Q
  1. W:$D(IOF) @IOF
  1. Q
  1. CHK9 ;EP
  1. I $$CHK91(Y)
  1. Q:$D(^ICD9(Y))
  1. Q
  1. CHK91(Y) ;EP
  1. NEW A,I,D,%
  1. S D=""
  1. S D=$$FMADD^XLFDT($$IMP^ICDEX(30),-2)
  1. S I=1
  1. S %=$$ICDDX^ICDEX(Y,D)
  1. I $P(%,U,20)]"",$P(%,U,20)'=I Q 0 ;not correct coding system
  1. S I="CHKDX9"_I
  1. G @I
  1. ;Q
  1. CHKDX91 ;CODING SYSTEM 1 - ICD9
  1. I $E($P(%,U,2),1)="E" Q 0 ;no E codes
  1. I '$P(%,U,10) Q 0 ;STATUS IS INACTIVE
  1. ;
  1. CSEX ; IF 'USE WITH SEX' FIELD HAS A VALUE CHECK THAT VALUE AGAINST AUPNSEX
  1. I '$D(AUPNSEX) Q 1
  1. ;I $P(^ICD9(Y,0),U,10)]"",$P(^ICD9(Y,0),U,10)'=AUPNSEX Q 0
  1. I $P(%,U,11)]"",$P(%,U,11)'=AUPNSEX Q 0
  1. Q 1
  1. ;
  1. HELP9 ;EP
  1. NEW D,I,%
  1. I '$O(^ICDS("F",80,0)) Q
  1. I $T(LST^ATXAPI)="" Q
  1. S D=$$FMADD^XLFDT($$IMP^ICDEX(30),-2)
  1. S I=1
  1. S %="Enter an active "_$$VAL^XBDIQ1(80.4,I,.01)_" diagnosis code or descriptive text. "
  1. D EN^DDIOL(%)
  1. I I=1 D
  1. .D EN^DDIOL("DO NOT enter a code that begins with E (these are External cause of"),EN^DDIOL("Morbidity codes).")
  1. Q:X="?BAD"
  1. ;ASK FOR LIST
  1. Q:'$$ASKLIST()
  1. NEW AUPNC
  1. K ^TMP($J,"APCDCODE") S AUPNC=$NA(^TMP($J,"APCDCODE"))
  1. D LST^ATXAPI(I,80,"*","CODE",AUPNC)
  1. ;display to screen until "^"
  1. NEW AUPNX,AUPNY,AUPNQ,AUPNF,X
  1. S AUPNX="",AUPNQ=0,AUPNF=0 F S AUPNX=$O(^TMP($J,"APCDCODE",AUPNX)) Q:AUPNX=""!($G(AUPNQ)) D
  1. .I AUPNF,$Y>(IOSL-2) D EOP Q:AUPNQ
  1. .;CHECK FOR ACTIVE STATUS
  1. .S %=$$ICDDX^ICDEX($P(^TMP($J,"APCDCODE",AUPNX),U,1),D,,"I")
  1. .I I=1 Q:$E(AUPNX)="E"
  1. .Q:'$P(%,U,10) ;inactive on this date
  1. .S X=AUPNX,$E(X,12)=$P(%,U,4)
  1. .D EN^DDIOL(X)
  1. .S AUPNF=1
  1. K ^TMP($J,"APCDCODE")
  1. Q
  1. CHKE9 ;EP
  1. I $$CHKE91(Y)
  1. Q:$D(^ICD9(Y))
  1. Q
  1. CHKE91(Y) ;
  1. NEW A,I,D,%
  1. S D=""
  1. S D=$$FMADD^XLFDT($$IMP^ICDEX(30),-2)
  1. S I=1
  1. S %=$$ICDDX^ICDEX(Y,D)
  1. I $P(%,U,20)]"",$P(%,U,20)'=I Q 0 ;not correct coding system
  1. ;
  1. I $E($P(%,U,2),1)'="E" Q 0 ;no E codes
  1. I '$P(%,U,10) Q 0 ;STATUS IS INACTIVE
  1. ;
  1. I '$D(AUPNSEX) Q 1
  1. I $P(%,U,11)]"",$P(%,U,11)'=AUPNSEX Q 0
  1. Q 1
  1. ;
  1. HELPE9 ;EP
  1. NEW D,I,%
  1. I '$O(^ICDS("F",80,0)) Q
  1. I $T(LST^ATXAPI)="" Q
  1. S D=$$FMADD^XLFDT($$IMP^ICDEX(30),-2)
  1. D EN^DDIOL("Enter a cause of injury ""E"" code.")
  1. D EN^DDIOL(" ")
  1. ;Q:X="?"
  1. Q:X="?BAD"
  1. Q:'$$ASKLIST()
  1. NEW AUPNC
  1. K ^TMP($J,"APCDCODE") S AUPNC=$NA(^TMP($J,"APCDCODE"))
  1. D LST^ATXAPI(1,80,"E*","CODE",AUPNC)
  1. ;display to screen until "^"
  1. NEW AUPNX,AUPNY,AUPNQ,AUPNF,X
  1. S AUPNX="",AUPNQ=0,AUPNF=0 F S AUPNX=$O(^TMP($J,"APCDCODE",AUPNX)) Q:AUPNX=""!($G(AUPNQ)) D
  1. .I AUPNF,$Y>(IOSL-2) D EOP Q:AUPNQ
  1. .;CHECK FOR ACTIVE STATUS
  1. .S %=$$ICDDX^ICDEX($P(^TMP($J,"APCDCODE",AUPNX),U,1),D,,"I")
  1. .Q:'$P(%,U,10) ;inactive on this date
  1. .S X=AUPNX,$E(X,12)=$P(%,U,4)
  1. .D EN^DDIOL(X)
  1. .S AUPNF=1
  1. K ^TMP($J,"APCDCODE")
  1. Q
  1. CHKPL9 ;EP
  1. I $$CHKPL91(Y)
  1. Q:$D(^ICD9(Y))
  1. Q
  1. CHKPL91(Y) ;
  1. NEW A,I,D,%
  1. S D=""
  1. S D=$$FMADD^XLFDT($$IMP^ICDEX(30),-2)
  1. S I=1
  1. S %=$$ICDDX^ICDEX(Y,D)
  1. I $P(%,U,20)]"",$P(%,U,20)'=I Q 0 ;not correct coding system
  1. ;
  1. I $E($P(%,U,2),1,4)'="E849" Q 0
  1. I '$P(%,U,10) Q 0 ;STATUS IS INACTIVE
  1. ;
  1. I '$D(AUPNSEX) Q 1
  1. I $P(%,U,11)]"",$P(%,U,11)'=AUPNSEX Q 0
  1. Q 1
  1. ;
  1. HELPPL9 ;EP
  1. NEW D,I,%
  1. I '$O(^ICDS("F",80,0)) Q
  1. I $T(LST^ATXAPI)="" Q
  1. S D=$$FMADD^XLFDT($$IMP^ICDEX(30),-2)
  1. S I=1
  1. Q:X="?BAD"
  1. Q:'$$ASKLIST()
  1. NEW AUPNC
  1. K ^TMP($J,"APCDCODE") S AUPNC=$NA(^TMP($J,"APCDCODE"))
  1. D LST^ATXAPI(1,80,"E849-E849.ZZ","CODE",AUPNC)
  1. ;display to screen until "^"
  1. NEW AUPNX,AUPNY,AUPNQ,AUPNF,X
  1. S AUPNX="",AUPNQ=0,AUPNF=0 F S AUPNX=$O(^TMP($J,"APCDCODE",AUPNX)) Q:AUPNX=""!($G(AUPNQ)) D
  1. .I AUPNF,$Y>(IOSL-2) D EOP Q:AUPNQ
  1. .;CHECK FOR ACTIVE STATUS
  1. .S %=$$ICDDX^ICDEX($P(^TMP($J,"APCDCODE",AUPNX),U,1),D,,"I")
  1. .Q:'$P(%,U,10) ;inactive on this date
  1. .S X=AUPNX,$E(X,12)=$P(%,U,4)
  1. .D EN^DDIOL(X)
  1. .S AUPNF=1
  1. K ^TMP($J,"APCDCODE")
  1. Q
  1. HELPOP9 ;EP
  1. NEW D,I,%
  1. I '$O(^ICDS("F",80,0)) Q
  1. I $T(LST^ATXAPI)="" Q
  1. S D=""
  1. S I=2 ;get ien of coding system
  1. S D=$S($T(IMP^ICDEX)]"":$$FMADD^XLFDT($$IMP^ICDEX(31),-2),1:DT)
  1. S %="Enter an active ICD-9 Procedure Code or descriptive text. "
  1. D EN^DDIOL(%)
  1. ;D EN^DDIOL("Enter a Procedure name (2-245 characters in length), a Procedure")
  1. ;D EN^DDIOL("code, one or more keywords sufficient to select a Procedure name.")
  1. ;D EN^DDIOL(" ")
  1. ;Q:X="?"
  1. Q:X="?BAD"
  1. Q:'$$ASKLISTO()
  1. NEW AUPNC
  1. K ^TMP($J,"APCDCODE") S AUPNC=$NA(^TMP($J,"APCDCODE"))
  1. D LST^ATXAPI(I,80.1,"*","CODE",AUPNC)
  1. ;display to screen until "^"
  1. NEW AUPNX,AUPNY,AUPNQ,AUPNF,X
  1. S AUPNX="",AUPNQ=0,AUPNF=0 F S AUPNX=$O(^TMP($J,"APCDCODE",AUPNX)) Q:AUPNX=""!($G(AUPNQ)) D
  1. .I AUPNF,$Y>(IOSL-2) D EOP Q:AUPNQ
  1. .;CHECK FOR ACTIVE STATUS
  1. .S %=$$ICDOP^ICDEX($P(^TMP($J,"APCDCODE",AUPNX),U,1),D,,"I")
  1. .Q:'$P(%,U,10) ;inactive on this date
  1. .S X=AUPNX,$E(X,12)=$P(%,U,5)
  1. .D EN^DDIOL(X)
  1. .S AUPNF=1
  1. K ^TMP($J,"APCDCODE")
  1. Q
  1. CHKOP9 ;EP
  1. I $$CHKOP91(Y)
  1. Q:$D(^ICD9(Y))
  1. Q
  1. CHKOP91(Y) ;
  1. NEW A,I,D,%
  1. S D=""
  1. S D=$$FMADD^XLFDT($$IMP^ICDEX(30),-2)
  1. S I=2
  1. S %=$$ICDOP^ICDEX(Y,,,"I")
  1. I $P(%,U,15)]"",$P(%,U,15)'=I Q 0 ;not correct coding system
  1. ;
  1. I '$P(%,U,10) Q 0 ;STATUS IS INACTIVE
  1. ;
  1. I '$D(AUPNSEX) Q 1
  1. I $P(%,U,11)]"",$P(%,U,11)'=AUPNSEX Q 0
  1. Q 1
  1. ;