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

AMHUTIL1.m

Go to the documentation of this file.
  1. AMHUTIL1 ; IHS/CMI/LAB - provider functions 06 Aug 2009 11:15 AM ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;**1,2,4,5**;JUN 02, 2010;Build 18
  1. ;IHS/CMI/LAB - added stage as output parameter
  1. ;
  1. ;IHS/TUCSON/LAB - patch 1 05/19/97 - fixed setting of array
  1. DEMO(P,T) ;EP - called to exclude demo patients
  1. I $G(P)="" Q 0
  1. I $G(T)="" S T="I"
  1. I T="I" Q 0
  1. NEW R
  1. S R=""
  1. I T="E" D Q R
  1. .I $P($G(^DPT(P,0)),U)["DEMO,PATIENT" S R=1 Q
  1. .NEW %
  1. .S %=$O(^DIBT("B","RPMS DEMO PATIENT NAMES",0))
  1. .I '% S R=0 Q
  1. .I $D(^DIBT(%,1,P)) S R=1 Q
  1. I T="O" D Q R
  1. .I $P($G(^DPT(P,0)),U)["DEMO,PATIENT" S R=0 Q
  1. .NEW %
  1. .S %=$O(^DIBT("B","RPMS DEMO PATIENT NAMES",0))
  1. .I '% S R=1 Q
  1. .I $D(^DIBT(%,1,P)) S R=0 Q
  1. .S R=1 Q
  1. Q 0
  1. ;
  1. DEMOCHK(R) ;EP - check demo pat
  1. NEW DIR,DA
  1. S R=-1
  1. S DIR(0)="S^I:Include ALL Patients;E:Exclude DEMO Patients;O:Include ONLY DEMO Patients",DIR("A")="Demo Patient Inclusion/Exclusion",DIR("B")="E"
  1. KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) S R=-1 Q
  1. S R=Y
  1. Q
  1. CHKD(Y,D) ;EP check dsm with Date
  1. S D=$G(D)
  1. I 'Y Q 0
  1. I '$D(^AMHPROB(Y,0)) Q 0
  1. ;FIRST LETS FIGURE OUT IF WE WANT IV OR V AND THEN MOVE ON
  1. S DSC=$$DSMCS(DUZ(2),D)
  1. S CS=$P(^AMHPROB(Y,0),U,10) I CS=4!(CS=5),CS'=DSC Q 0 ;NOT CORRECT CODING SYSTEM
  1. NEW M,Z,J
  1. S M=$P(^AMHPROB(Y,0),U,13) I M D I 'Z Q Z
  1. .S Z=1
  1. .S J=$P(^AMHPROB(Y,0),U,14)
  1. .I J="" S Z=0 Q
  1. .I D]"",J]"",J<D S Z=0
  1. .I D="" S Z=0
  1. NEW IMP S IMP=$$IMP^AMHUTIL2($S(D:D,1:DT))
  1. NEW I S I=$P(^AMHPROB(Y,0),U,5)
  1. ;I I="" Q $P(^AMHPROB(Y,0),U,13) ;cmi/maw orig
  1. I IMP=1,$P(^AMHPROB(Y,0),U,5)="",$P(^AMHPROB(Y,0),U,17)]"" Q 0
  1. I IMP=30,$P(^AMHPROB(Y,0),U,17)="",$P(^AMHPROB(Y,0),U,5)]"" Q 0
  1. I IMP=1 S I=$P(^AMHPROB(Y,0),U,5) ;GET ICD9 code that this is mapped to
  1. I IMP=30 S I=$P(^AMHPROB(Y,0),U,17)
  1. I I="" Q $S($P(^AMHPROB(Y,0),U,13):0,1:1) ;cmi/maw modified
  1. Q $$POVICD9D(I,D)
  1. ;
  1. CHKICD(Y,D,R,A,E) ;EP
  1. S D=$G(D)
  1. S R=$G(R)
  1. S A=$G(A)
  1. S E=$G(E)
  1. I $$POVICD9(Y,D,R,A,E)
  1. Q:$D(^AMHPROB(Y))
  1. Q
  1. DSMCS(S,D) ;EP - called to get coding system
  1. ;s is site DUZ(2)
  1. ;d is date
  1. ;if can't determine default to DSM IV
  1. I '$G(S) S S=DUZ(2)
  1. I '$G(D) S D=DT
  1. I '$D(^AMHSITE(S,0)) Q 4 ;NO SITE PARAMETER FILE SO DEFAULT TO 4
  1. NEW C,I
  1. S C=$P($G(^AMHSITE(S,18)),U,11) ;DATE, IF NO DATE USE 4
  1. I C="" Q 4
  1. I D<C Q 4
  1. Q 5
  1. DSMVDT(S) ;
  1. ;s is site DUZ(2)
  1. ;if can't determine default to DSM IV
  1. I '$G(S) S S=DUZ(2)
  1. I '$D(^AMHSITE(S,0)) Q 4 ;NO SITE PARAMETER FILE SO DEFAULT TO 4
  1. NEW C,I
  1. S C=$P($G(^AMHSITE(S,18)),U,11) ;DATE, IF NO DATE USE 4
  1. Q C
  1. ;
  1. POVICD9(Y,D,R,A,E) ;EP
  1. ;Y=ien of entry in MHSS PROBLEM/DSM CODE file
  1. ;E - indicates we are in EHR so it is accepted since PCC accepted it
  1. ;R - ien of MHSS RECORD if known and in a record
  1. ;D - date of visit for which this pov is being added
  1. ;A - equal to DA of MHSS RECORD PROBLEMS file, to be used if in fileman's edit??? and not in BH software?, maybe someone is doing D P^DI and editting the .01 field of the file??
  1. ;
  1. I $G(E) Q 1 ;take whatever EHR passes as EHR rules
  1. S R=$G(R)
  1. S D=$G(D)
  1. S A=$G(A)
  1. S Y=$G(Y)
  1. I 'Y Q 0 ;pass an IEN!
  1. NEW I,V,M,Z,J,K,IMP,DCS,CS
  1. ;FIRST LETS FIGURE OUT IF WE WANT IV OR V AND THEN MOVE ON
  1. ;S DSC=$$DSMCS(DUZ(2),D)
  1. I '$G(E),$P(^AMHPROB(Y,0),U,18) Q 0 ;NOT SELECTABLE IN BH ENTRY
  1. S IMP=$$IMP^AMHUTIL2($S(R:$P($P($G(^AMHREC(R,0)),U),"."),1:DT))
  1. ;If IMP is 1 allow any with an icd9 pointer or if both icd9 and icd10 are blank
  1. ;If IMP is 30 allow any with an icd10 pointer or if both icd9 and icd10 are blank
  1. I '$D(^AMHPROB(Y,0)) Q 0 ;pass a VALID IEN!
  1. ;FIRST LETS FIGURE OUT IF WE WANT IV OR V AND THEN MOVE ON
  1. S DSC=$$DSMCS(DUZ(2),D)
  1. S CS=$P(^AMHPROB(Y,0),U,10) I CS=4!(CS=5),CS'=DSC Q 0 ;NOT CORRECT CODING SYSTEM
  1. S M=$P(^AMHPROB(Y,0),U,13) I M D I 'Z Q Z
  1. .S Z=1
  1. .S J=$P(^AMHPROB(Y,0),U,14)
  1. .I J="" S Z=0 Q
  1. .I D="",R S D=$P($P($G(^AMHREC(R,0)),U),".")
  1. .I D="" S D=DT
  1. .I D]"",J]"",J'>D S Z=0
  1. .I D="" S Z=0
  1. S J=$P(^AMHPROB(Y,0),U,16)
  1. I J D I 'Z Q Z
  1. .S Z=1
  1. .I D="",R S D=$P($P($G(^AMHREC(R,0)),U),".")
  1. .I D]"",J]"",J>D S Z=0
  1. .I J>DT S Z=0
  1. I IMP=1,$P(^AMHPROB(Y,0),U,5)="",$P(^AMHPROB(Y,0),U,17)]"" Q 0
  1. I IMP=30,$P(^AMHPROB(Y,0),U,17)="",$P(^AMHPROB(Y,0),U,5)]"" Q 0
  1. I IMP=1 S I=$P(^AMHPROB(Y,0),U,5) ;GET ICD9 code that this is mapped to
  1. I IMP=30 S I=$P(^AMHPROB(Y,0),U,17)
  1. I I="" Q $S('$P(^AMHPROB(Y,0),U,13):1,1:0) ;if there is no icd code to look at then just check status field and quit
  1. ;now figure out if valid based on what data is passed.
  1. ;if passed in D, use it and quit
  1. I D Q $$POVICD9D(I,D)
  1. I R,$D(^AMHREC(R,0)) S D=$P($P(^AMHREC(R,0),U,1),".") Q $$POVICD9D(I,D)
  1. I A S V=$P($G(^AMHRPRO(A,0)),U,3) I V,$D(^AMHREC(V,0)) S D=$P($P(^AMHREC(V,0),U,1),".") Q $$POVICD9D(I,D)
  1. Q $$POVICD9D(I)
  1. ;
  1. POVICD9D(Y,D) ;
  1. NEW A,I
  1. S D=$G(D)
  1. I $$VERSION^XPDUTL("BCSV")]"",$T(ICDDX^ICDEX)="" Q $P($$ICDDX^ICDCODE(Y,D),U,10) ;CSV
  1. I $$VERSION^XPDUTL("BCSV")]"",$T(ICDDX^ICDEX)]"" Q $P($$ICDDX^ICDEX(Y,D),U,10) ;CSV
  1. ;10TH PIECE OF THAT CALL DOESN'T WORK IF CSV NOT INSTALLED
  1. I $T(ICDDX^ICDEX)="" S Y=$P($$ICDDX^ICDCODE(Y,D),U,1)
  1. I $T(ICDDX^ICDEX)]"" S Y=$P($$ICDDX^ICDEX(Y,D),U,1)
  1. I $G(Y)<0 Q 0 ;cmi/maw added for return of -1
  1. S A=$P($G(^ICD9(Y,9999999)),U,4),I=$P(^ICD9(Y,0),U,11)
  1. I D]"",I]"",D>I Q 0
  1. I D]"",A]"",D<A Q 0
  1. Q 1
  1. ;
  1. PRIMPOV(V,F) ;EP - primary provider in many different formats
  1. I 'V Q ""
  1. I '$D(^AMHREC(V)) Q ""
  1. NEW %,Y,P,C,Z
  1. S (Z,P)="",(Y,C)=0
  1. S Y=$O(^AMHRPRO("AD",V,0)) I Y S P=$P(^AMHRPRO(Y,0),U),Z=Y
  1. I 'P Q P
  1. I '$D(^AMHPROB(P)) Q ""
  1. I $G(F)="" S F="C"
  1. S %="" D @F
  1. Q %
  1. ;
  1. SECPOV(V,N,F) ;EP
  1. I 'V Q ""
  1. I '$D(^AMHREC(V)) Q ""
  1. I '$G(N) Q ""
  1. NEW %,Y,P,C,Z
  1. S (Z,P)="",(Y,C)=0
  1. S Y=0,C=-1 F S Y=$O(^AMHRPRO("AD",V,Y)) Q:Y'=+Y S C=C+1 I C=N S P=$P(^AMHRPRO(Y,0),U),Z=Y
  1. I 'P Q P
  1. I '$D(^AMHPROB(P)) Q ""
  1. I $G(F)="" S F="C"
  1. S %="" D @F
  1. Q %
  1. ;
  1. POV ;EP
  1. NEW Z,C,%,S,I,J
  1. S (C,Y)=0 F S Y=$O(^AMHRPRO("AD",V,Y)) Q:Y'=+Y S C=C+1 S APCLV(C)="",P=$P(^AMHRPRO(Y,0),U),Z=Y D
  1. .I F=99 D Q
  1. ..F I=1:1 S S=$T(@I) Q:S="" S %="" D @I S $P(APCLV(C),U,I)=%
  1. .I F[";" D Q
  1. ..F J=1:1 S I=$P(F,";",J) Q:I="" I I'=99 S %="" D @I S $P(APCLV(C),U,I)=% ;IHS/TUCSON/LAB - patch 1 05/19/97 changed ,I TO ,J
  1. .S %="",I=F D @I S $P(APCLV(C),U)=%
  1. .Q
  1. Q
  1. ADMDX ;EP
  1. I 'V Q ""
  1. I '$D(^AMHREC(V)) Q ""
  1. NEW %,Y,Z
  1. S %="",Z=$O(^AUPNVINP("AD",V,0))
  1. I 'Z Q %
  1. S P=$P(^AUPNVINP(Z,0),U,12)
  1. I 'P Q P
  1. I '$D(^AMHPROB(P)) Q ""
  1. I $G(F)="" S F="C"
  1. S %="" D @F
  1. Q %
  1. ;
  1. B ;
  1. S %=$P(^AMHPROB(P,0),U,10) Q
  1. I ;
  1. S %=P Q
  1. E ;
  1. S %=$P(^AMHPROB(P,0),U,3) Q
  1. C ;EP
  1. S %=$P(^AMHPROB(P,0),U) Q
  1. D ;EP
  1. S %=$P(^AMHRPRO(Z,0),U,7) Q
  1. J ;
  1. S %=$P(^AMHRPRO(Z,0),U,9) I % S %=$P(^AMHPROB(%,0),U) Q
  1. Q
  1. P ;
  1. S %=$P(^AMHRPRO(Z,0),U,11) Q
  1. N ;
  1. S %=$$GET1^DIQ(9002011.01,Z,.04)
  1. Q
  1. S ;stage
  1. S %=$P(^AMHRPRO(Z,0),U,5) Q
  1. ;
  1. 1 ;
  1. S %=$$VD^APCLV($P(^AMHRPRO(Y,0),U,3),"I")
  1. Q
  1. 2 ;
  1. S %=$$VD^APCLV($P(^AMHRPRO(Y,0),U,3),"S")
  1. Q
  1. 3 ;
  1. S %=$P(^AMHRPRO(Y,0),U,2)
  1. Q
  1. 4 ;
  1. S %=$$PATIENT^APCLV($P(^AMHRPRO(Y,0),U,3),"E")
  1. Q
  1. 5 ;
  1. S %=Y
  1. Q
  1. 6 D E Q
  1. 7 D C Q
  1. 9 D D Q
  1. 10 S %=$$VAL^XBDIQ1(9000010.07,Y,.07) Q
  1. 11 D J Q
  1. 12 D P Q
  1. 13 S %=$$VAL^XBDIQ1(9000010.07,Y,.11) Q
  1. 14 D N Q
  1. 15 S %=$P(^AMHRPRO(Y,0),U,12) Q
  1. 16 S %=$$VAL^XBDIQ1(9000010.07,Y,.12) Q
  1. 17 S %=$$VAL^XBDIQ1(9000010.07,Y,.13) Q
  1. 18 S %=$$VAL^XBDIQ1(9000010.07,Y,.05) Q
  1. 19 S %=$$VALI^XBDIQ1(9000010.07,Y,.06) Q
  1. 20 S %=$$VAL^XBDIQ1(9000010.07,Y,.06) Q
  1. DATEEDIT ;EP
  1. I $P(X,".",2)="" D HLP^DDSUTL("You must enter a valid date/time. Time is required.") S DDSERROR=1 Q
  1. Q
  1. UID(AMHA) ;EP-Given DFN return unique patient record id.
  1. ; AMHA can be DFN, but is not required if DFN or DA exists.
  1. ;
  1. ; pt record id = 6DIGIT_PADDFN
  1. ; where 6DIGIT is the ASUFAC at the time of implementation of
  1. ; this functionality. I.e., the existing ASUFAC was frozen and
  1. ; stuffed into the .25 field of the RPMS SITE file.
  1. ; PADDFN = DFN right justified in a field of 10.
  1. ;
  1. ; If not there, stuff the ASUFAC into RPMS SITE for durability.
  1. ;I '$P($G(^AUTTSITE(1,1)),U,3) S $P(^AUTTSITE(1,1),U,3)=$P(^AUTTLOC($P(^AUTTSITE(1,0),U,1),0),U,10)
  1. ;
  1. ; If AMHA is not specified, try DFN, then DA if DIC=AUPNPAT.
  1. I '$G(AMHA),$G(DFN) S AMHA=DFN
  1. I '$G(AMHA),$G(DA),$G(DIC)="^AUPNPAT(" S AMHA=DA
  1. ;
  1. I '$G(AMHA) Q "DFN undefined."
  1. I '$D(^AUPNPAT(AMHA)) Q "No entry in AUPNPAT(."
  1. ;
  1. Q $$GET1^DIQ(9999999.06,$P(^AUTTSITE(1,0),U),.32)_$E("0000000000",1,10-$L(AMHA))_AMHA
  1. ;
  1. UIDV(VISIT) ;EP - generate unique ID for visit
  1. I '$G(VISIT) Q VISIT
  1. NEW X
  1. ;I '$P($G(^AUTTSITE(1,1)),"^",3) S $P(^AUTTSITE(1,1),"^",3)=$P(^AUTTLOC($P(^AUTTSITE(1,0),"^",1),0),"^",10)
  1. S X=$$GET1^DIQ(9999999.06,$P(^AUTTSITE(1,0),U),.32)
  1. Q X_$$LZERO(VISIT,10)
  1. ;
  1. LZERO(V,L) ;EP - left zero fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V="0"_V
  1. Q V
  1. ;
  1. DAYSBACK ;EP - called from option
  1. W !,"This option is used to edit the parameter definition for the "
  1. W !,"Number of days back the BH-EHR should look for displaying visits"
  1. W !,"to the user.",!!
  1. D EDITPAR^XPAREDIT("AMHBH DAYS BACK")
  1. Q
  1. EDITTIUT ;EP - called from option
  1. W !!,"This option is used to edit the parameters for the list"
  1. W !,"of preferred TIU Note Titles that the BH-EHR should display"
  1. W !,"to the user when they select a TIU title for the following:"
  1. W !?5," - Behavioral Health record Progress Note/SOAP"
  1. W !?5," - Treatment Plan Narrative"
  1. W !?5," - Group Note Narrative"
  1. W !?5," - Intake Document Narrative"
  1. W !!
  1. ED1 ;
  1. K DIR
  1. S DIR(0)="SO^P:Behavioral Health record Progress Note/SOAP;T:Treatment Plan Narrative;G:Group Note Narrative;I:Intake Document Narrative"
  1. S DIR("A")="Enter the type of Preferred TIU Note Titles to Update" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) Q
  1. I Y="" Q
  1. S AMHY=Y_"X"
  1. S AMHPAR=$P($T(@AMHY),";;",2)
  1. D EDITPAR^XPAREDIT(AMHPAR)
  1. G ED1
  1. PX ;;AMHBH TIU TITLES 9002011-1108
  1. TX ;;AMHBH TIU TITLES TP .21
  1. GX ;;AMHBH TIU TITLES GROUP-.17
  1. IX ;;AMHBH TIU TITLES INTAKE-.09
  1. ;
  1. ;
  1. EDITHLD ;EP - called from option
  1. W !!,"This option is used to edit the default hospital locations"
  1. W !,"do be displayed to the user when creating a TIU Note."
  1. W !!
  1. HL1 ;
  1. D EDITPAR^XPAREDIT("AMHBH HOSPITAL LOCATION (TIU)")
  1. Q
  1. CPT(Y,D) ;EP - screen on CPT
  1. S D=$G(D)
  1. I $$CHKCPT(Y,D)
  1. Q:$D(^ICPT(Y))
  1. Q
  1. ;
  1. CHKCPT(Y,D) ;EP
  1. NEW A,I,%
  1. S %=$$CPT^ICPTCOD(Y,D)
  1. I $G(%)<0 Q 0 ;cmi/maw added for return of -1
  1. I $$VERSION^XPDUTL("BCSV")]"" Q $P(%,U,7)
  1. S A="",I=$P(^ICPT(Y,0),U,7) ;CAN'T RELY ON A IN OLD MODE
  1. ;A is date added, I is date inactivated/deleted
  1. I I]"",D]"",I<D Q 0
  1. Q 1
  1. ;
  1. OPEN ;
  1. NEW O,A,C,N
  1. S O=$$GET^DDSVAL(9002011.58,DA,.01,,"I")
  1. S A=$$GET^DDSVAL(9002011.58,DA,.04,,"I")
  1. S C=$$GET^DDSVAL(9002011.58,DA,.05,,"I")
  1. S N=$$GET^DDSVAL(9002011.58,DA,.12,,"I")
  1. Q:O=""
  1. I A,O>A D Q
  1. .D EN^DDIOL("Open Date cannot be before admit date. You must change")
  1. .D EN^DDIOL("or remove the admit date before changing the open date.")
  1. .D PUT^DDSVAL(DIE,.DA,.01,DDSOLD,,"I")
  1. .S DDSBR=1
  1. I C,O>C D Q
  1. .D EN^DDIOL("Open Date cannot be before the closed date. You must change")
  1. .D EN^DDIOL("or remove the closed date before changing the open date.")
  1. .D PUT^DDSVAL(DIE,.DA,.01,DDSOLD,,"I")
  1. .S DDSBR=1
  1. I N,O>N D Q
  1. .D EN^DDIOL("Open Date cannot be before the next review date. You must change")
  1. .D EN^DDIOL("or remove the next review date before changing the open date.")
  1. .D PUT^DDSVAL(DIE,.DA,.01,DDSOLD,,"I")
  1. .S DDSBR=1
  1. Q
  1. ADMIT ;
  1. NEW O,A,C,N
  1. S O=$$GET^DDSVAL(9002011.58,DA,.01,,"I")
  1. S A=$$GET^DDSVAL(9002011.58,DA,.04,,"I")
  1. S C=$$GET^DDSVAL(9002011.58,DA,.05,,"I")
  1. S N=$$GET^DDSVAL(9002011.58,DA,.12,,"I")
  1. Q:A=""
  1. I O>A D Q
  1. .D EN^DDIOL("Admit date cannot be before open date. You must change")
  1. .D EN^DDIOL("the open date before changing the admit date.")
  1. .D PUT^DDSVAL(DIE,.DA,.04,DDSOLD,,"I")
  1. .S DDSBR=5
  1. I C,A>C D Q
  1. .D EN^DDIOL("Admit Date cannot be before the closed date. You must change")
  1. .D EN^DDIOL("or remove the closed date before changing the admit date.")
  1. .D PUT^DDSVAL(DIE,.DA,.04,DDSOLD,,"I")
  1. .S DDSBR=5
  1. ;I N,A>N D Q
  1. ;.D EN^DDIOL("Admit Date cannot be before the next review date. You must change")
  1. ;.D EN^DDIOL("or remove the next review date before changing the admit date.")
  1. ;.D PUT^DDSVAL(DIE,.DA,.04,DDSOLD,,"I")
  1. ;.S DDSBR=1
  1. Q
  1. NRD ;
  1. NEW O,A,C,N
  1. S O=$$GET^DDSVAL(9002011.58,DA,.01,,"I")
  1. S A=$$GET^DDSVAL(9002011.58,DA,.04,,"I")
  1. S C=$$GET^DDSVAL(9002011.58,DA,.05,,"I")
  1. S N=$$GET^DDSVAL(9002011.58,DA,.12,,"I")
  1. Q:N=""
  1. I O,O>N D Q
  1. .D EN^DDIOL("Next review date cannot be before open date. You must change")
  1. .D EN^DDIOL("the open date before changing the next review date.")
  1. .D PUT^DDSVAL(DIE,.DA,.12,DDSOLD,,"I")
  1. .S DDSBR=6
  1. ;I A,A>N D Q
  1. ;.D EN^DDIOL("Next Review Date cannot be before the closed date. You must change")
  1. ;.D EN^DDIOL("or remove the closed date before changing the admit date.")
  1. ;.D PUT^DDSVAL(DIE,.DA,.04,DDSOLD,,"I")
  1. ;.S DDSBR=1
  1. ;I N,A>N D Q
  1. ;.D EN^DDIOL("Admit Date cannot be before the next review date. You must change")
  1. ;.D EN^DDIOL("or remove the next review date before changing the admit date.")
  1. ;.D PUT^DDSVAL(DIE,.DA,.04,DDSOLD,,"I")
  1. ;.S DDSBR=1
  1. Q
  1. CLOSED ;
  1. NEW O,A,C,N
  1. S O=$$GET^DDSVAL(9002011.58,DA,.01,,"I")
  1. S A=$$GET^DDSVAL(9002011.58,DA,.04,,"I")
  1. S C=$$GET^DDSVAL(9002011.58,DA,.05,,"I")
  1. S N=$$GET^DDSVAL(9002011.58,DA,.12,,"I")
  1. Q:C=""
  1. I O,O>C D Q
  1. .D EN^DDIOL("Closed date cannot be before open date. You must change")
  1. .D EN^DDIOL("the open date before changing the closed date.")
  1. .D PUT^DDSVAL(DIE,.DA,.05,DDSOLD,,"I")
  1. .S DDSBR=7
  1. I A,A>C D Q
  1. .D EN^DDIOL("Admit Date cannot be before the closed date. You must change")
  1. .D EN^DDIOL("or remove the admit date before changing the closed date.")
  1. .D PUT^DDSVAL(DIE,.DA,.05,DDSOLD,,"I")
  1. .S DDSBR=7
  1. Q
  1. TARGET(R) ;EP
  1. I $O(^AMHRPA("AD",R,0)) Q
  1. NEW E
  1. D PUT^DDSVAL(9002011,AMHR,1106,"@",.E)
  1. D REQ^DDSUTL("TARGET","AMH PREV ACT TARGET BLK",5.3,0)
  1. Q
  1. TAR1(R) ;EP
  1. K DLAYGO
  1. I $O(^AMHRPA("AD",R,0)) D REQ^DDSUTL("TARGET","AMH PREV ACT TARGET BLK",5.3,1) Q
  1. D REQ^DDSUTL("TARGET","AMH PREV ACT TARGET BLK",5.3,0)
  1. Q