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

AUPNSICH.m

Go to the documentation of this file.
  1. AUPNSICH ; IHS/CMI/LAB - Screen Purpose of Visit/ICD9 codes 24-MAY-1993 ;
  1. ;;2.0;IHS PCC SUITE;**2,10,11,16**;MAY 14, 2009;Build 9
  1. ;IHS/TUCSON/LAB - added checks for filegram and CHS, do not
  1. ;
  1. HELP ;EP
  1. NEW D,I,%
  1. S D=""
  1. I '$O(^ICDS("F",80,0)) Q
  1. I $T(LST^ATXAPI)="" Q
  1. I $G(APCDVSIT),$D(^AUPNVSIT(APCDVSIT)) D
  1. .I $P(^AUPNVSIT(APCDVSIT,0),U,7)="H",$$DSCHDATE^APCLV(APCDVSIT)]"" S D=$$DSCHDATE^APCLV(APCDVSIT) Q
  1. .S D=$P($P(^AUPNVSIT(APCDVSIT,0),U),".")
  1. I D="" S D=$P($G(APCDDATE),".")
  1. I D="" S D=DT
  1. S I=$$IMP^AUPNSICD(D) ;get ien of coding system
  1. S %="Enter an active "_$S(I=1:"ICD-9-CM",1:"ICD-10-CM")_" 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. .;D EN^DDIOL(" ")
  1. I I=30 D
  1. .D EN^DDIOL("DO NOT enter a code that begins with V, W, X or Y (these are External"),EN^DDIOL("cause of Morbidity codes).")
  1. .;D EN^DDIOL(" ")
  1. ;Q:X="?"
  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. .I I=30,$E($P(%,U,2),1)="V" Q
  1. .I I=30,$E($P(%,U,2),1)="W" Q
  1. .I I=30,$E($P(%,U,2),1)="X" Q
  1. .I I=30,$E($P(%,U,2),1)="Y" Q
  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. 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. HELPFH ;EP
  1. NEW D,I,%
  1. S D=""
  1. I '$O(^ICDS("F",80,0)) Q
  1. I $T(LST^ATXAPI)="" Q
  1. I $G(APCDVSIT),$D(^AUPNVSIT(APCDVSIT)) D
  1. .I $P(^AUPNVSIT(APCDVSIT,0),U,7)="H",$$DSCHDATE^APCLV(APCDVSIT)]"" S D=$$DSCHDATE^APCLV(APCDVSIT) Q
  1. .S D=$P($P(^AUPNVSIT(APCDVSIT,0),U),".")
  1. I D="" S D=$P($G(APCDDATE),".")
  1. I D="" S D=DT
  1. S I=$$IMP^AUPNSICD(D) ;get ien of coding system
  1. ;S %="Enter a valid "_$$VAL^XBDIQ1(80.4,I,.01)_" Family History Diagnosis code. "
  1. ;D EN^DDIOL(%)
  1. D EN^DDIOL(" ")
  1. I I=1 D
  1. .D EN^DDIOL("Enter the Family History ICD that best describes the diagnosis."),EN^DDIOL("Select an active code, must be V16*, V17*, V18* or V19*.")
  1. .D EN^DDIOL(" ")
  1. I I=30 D
  1. .D EN^DDIOL("Enter the Family History ICD that best describes the diagnosis."),EN^DDIOL("Select an active code in the Z80 to Z84 range.")
  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(I,80,$S(I=1:"V16-V19.Z",1:"Z80-Z84.ZZZZ"),"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. HELPE ;EP
  1. NEW D,I,%
  1. S D=""
  1. I '$O(^ICDS("F",80,0)) Q
  1. I $T(LST^ATXAPI)="" Q
  1. I $G(APCDVSIT),$D(^AUPNVSIT(APCDVSIT)) D
  1. .I $P(^AUPNVSIT(APCDVSIT,0),U,7)="H",$$DSCHDATE^APCLV(APCDVSIT)]"" S D=$$DSCHDATE^APCLV(APCDVSIT) Q
  1. .S D=$P($P(^AUPNVSIT(APCDVSIT,0),U),".")
  1. I D="" S D=$P($G(APCDDATE),".")
  1. I D="" S D=DT
  1. S I=$$IMP^AUPNSICD(D) ;get ien of coding system
  1. I I=1 D Q
  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. I I=30 D Q
  1. .D EN^DDIOL("Must be an external cause of morbidity code. The code range is V00-Y99.")
  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(30,80,"V01-Y99.Z","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. EOP ;
  1. S AUPNQ=0
  1. NEW DIR
  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. ;
  1. HELPPL ;EP
  1. NEW D,I,%
  1. S D=""
  1. I '$O(^ICDS("F",80,0)) Q
  1. I $T(LST^ATXAPI)="" Q
  1. I $G(APCDVSIT),$D(^AUPNVSIT(APCDVSIT)) D
  1. .I $P(^AUPNVSIT(APCDVSIT,0),U,7)="H",$$DSCHDATE^APCLV(APCDVSIT)]"" S D=$$DSCHDATE^APCLV(APCDVSIT) Q
  1. .S D=$P($P(^AUPNVSIT(APCDVSIT,0),U),".")
  1. I D="" S D=$P($G(APCDDATE),".")
  1. I D="" S D=DT
  1. S I=$$IMP^AUPNSICD(D) ;get ien of coding system
  1. S %="Enter a valid "_$$VAL^XBDIQ1(80.4,I,.01)_" Place of Occurrence code. "
  1. I I=30 D EN^DDIOL(%)
  1. I I=1 D Q
  1. .D EN^DDIOL("Enter a Place or Occurrence code in the range E849.0-E849.9.")
  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,"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. I I=30 D Q
  1. .D EN^DDIOL("Must be in the code range Y92-Y92.9.")
  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(30,80,"Y92-Y92.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. HELPOP ;EP
  1. NEW D,I,%
  1. S D=""
  1. I '$O(^ICDS("F",80.1,0)) Q
  1. I $T(LST^ATXAPI)="" Q
  1. I $G(APCDVSIT),$D(^AUPNVSIT(APCDVSIT)) D
  1. .I $P(^AUPNVSIT(APCDVSIT,0),U,7)="H",$$DSCHDATE^APCLV(APCDVSIT)]"" S D=$$DSCHDATE^APCLV(APCDVSIT) Q
  1. .S D=$P($P(^AUPNVSIT(APCDVSIT,0),U),".")
  1. I D="" S D=$P($G(APCDDATE),".")
  1. I D="" S D=DT
  1. S I=$$IMPOP^AUPNSICD(D) ;get ien of coding system
  1. S %="Enter an active "_$S(I=2:"ICD-9",1:"ICD-10")_" 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. HELPRFB ;EP
  1. NEW D,I,%
  1. S D=""
  1. I '$O(^ICDS("F",80,0)) Q
  1. I $T(LST^ATXAPI)="" Q
  1. I $G(APCDVSIT),$D(^AUPNVSIT(APCDVSIT)) D
  1. .I $P(^AUPNVSIT(APCDVSIT,0),U,7)="H",$$DSCHDATE^APCLV(APCDVSIT)]"" S D=$$DSCHDATE^APCLV(APCDVSIT) Q
  1. .S D=$P($P(^AUPNVSIT(APCDVSIT,0),U),".")
  1. I D="" S D=$P($G(APCDDATE),".")
  1. I D="" S D=DT
  1. S I=$$IMP^AUPNSICD(D) ;get ien of coding system
  1. ;S %="Enter a valid "_$$VAL^XBDIQ1(80.4,I,.01)_" Place of Occurrence code. "
  1. ;D EN^DDIOL(%)
  1. I I=1 Q
  1. I I=30 D Q
  1. .D EN^DDIOL("Must be in the code range Z18-Z18.9.")
  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(30,80,"Z18-Z18.Z","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. HELPLEX ;EP
  1. NEW D,I,%
  1. S D=""
  1. I '$O(^ICDS("F",80,0)) Q
  1. I $T(LST^ATXAPI)="" Q
  1. I $G(APCDVSIT),$D(^AUPNVSIT(APCDVSIT)) D
  1. .I $P(^AUPNVSIT(APCDVSIT,0),U,7)="H",$$DSCHDATE^APCLV(APCDVSIT)]"" S D=$$DSCHDATE^APCLV(APCDVSIT) Q
  1. .S D=$P($P(^AUPNVSIT(APCDVSIT,0),U),".")
  1. I D="" S D=$P($G(APCDDATE),".")
  1. I D="" S D=DT
  1. S I=$$IMP^AUPNSICD(D) ;get ien of coding system
  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(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. .I I=1 Q:$E(AUPNX)="E"
  1. .I I=30,$E($P(%,U,2),1)="V" Q
  1. .I I=30,$E($P(%,U,2),1)="W" Q
  1. .I I=30,$E($P(%,U,2),1)="X" Q
  1. .I I=30,$E($P(%,U,2),1)="Y" Q
  1. .S %=$$ICDDX^ICDEX($P(AUPNC(AUPNX),U,1),D)
  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