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

BJPNPBDT.m

Go to the documentation of this file.
  1. BJPNPBDT ;GDIT/HS/BEE-Prenatal Care Module - Retrieve Detail History ; 08 May 2012 12:00 PM
  1. ;;2.0;PRENATAL CARE MODULE;;Feb 24, 2015;Build 63
  1. ;
  1. Q
  1. ;
  1. DET(DATA,PIP) ;EP - BJPN PROBLEM DETAIL
  1. ;
  1. ;This RPC returns the problem detail for a Problem entry (including past deletes)
  1. ;
  1. ;Input:
  1. ; PIP - Pointer to Prenatal Problem file entry
  1. ;
  1. NEW UID,II,TMP,PRBIEN,RET,VIEW,TCNT,ACNT,LINE,TMP1
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BJPNPBDT",UID))
  1. K @DATA
  1. I $G(DT)=""!($G(U)="") D DT^DICRW
  1. ;
  1. S TMP=$NA(^TMP("BJPNPDT1",UID))
  1. K @TMP
  1. S RET=$NA(^TMP("BJPNPDET",UID))
  1. K @RET
  1. ;
  1. S $P(LINE,"-",60)="-"
  1. ;
  1. S II=0
  1. ;NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BJPNPBDT D UNWIND^%ZTER" ; SAC 2009 2.2.3.17
  1. ;
  1. ;Define Header
  1. S @DATA@(II)="T01024REPORT_TEXT"_$C(30)
  1. ;
  1. I $G(PIP)="" S BMXSEC="INVALID PIP IEN" G XDET
  1. ;
  1. ;Get the IPL pointer
  1. S PRBIEN=$$GET1^DIQ(90680.01,PIP_",",.1,"I") I PRBIEN="" S BMXSEC="Invalid IPL pointer in PIP entry" G XDET
  1. ;
  1. ;Retrieve the audit history
  1. D ACOMP^BJPNFAUD(.RET,PIP,PRBIEN)
  1. ;
  1. ;Compile the information by date/time and user
  1. S ADT="",(ACNT,TCNT)=0 F S ADT=$O(@RET@(ADT)) Q:ADT="" S USER="" F S USER=$O(@RET@(ADT,USER)) Q:USER="" D
  1. . ;
  1. . NEW N,V,G,CHG
  1. . ;
  1. . ;Update event counter
  1. . S ACNT=ACNT+1
  1. . D SV("",LINE)
  1. . ;
  1. . S G=$NA(@RET@(ADT,USER))
  1. . ;
  1. . ;See if the last one
  1. . I '$$NEXT(.RET,ADT,USER) D
  1. .. D SV("","CURRENT PIP/IPL DISPLAY")
  1. .. D SV()
  1. . ;
  1. . ;IPL Change Header
  1. . D SV("","IPL Listing:")
  1. . D SV()
  1. . ;
  1. . ;IPL Add/Edit
  1. . I $D(@G@("DIAGNOSIS")) D
  1. .. S N=@G@("DIAGNOSIS")
  1. .. I $P(N,U)="" S VIEW("IPL.01")=$P(N,U,2),CHG("IPL.01")="Problem diagnosis added to IPL" Q
  1. .. S VIEW("IPL.01")=$P(N,U,2),CHG("IPL.01")="IPL Problem diagnosis changed to"
  1. . I $D(VIEW("IPL.01")) D SV("IPL.01","Problem diagnosis")
  1. . ;
  1. . ;Provider Text
  1. . I $D(@G@("PROVIDER NARRATIVE")) D
  1. .. S N=$P(@G@("PROVIDER NARRATIVE"),U,2)
  1. .. S VIEW("IPL.05")=N_U_$S(N]"":"",1:"^1")
  1. .. S CHG("IPL.05")="Provider Narrative set to"
  1. . I $D(VIEW("IPL.05")) D SV("IPL.05","Provider Narrative")
  1. . ;
  1. . ;IPL Status
  1. . I $D(@G@("STATUS")) D
  1. .. S N=$P(@G@("STATUS"),U,2)
  1. .. S VIEW("IPL.12")=N_U_$S(N]"":"",1:"^1")
  1. .. S CHG("IPL.12")="IPL Status set to"
  1. . I $D(VIEW("IPL.12")) D SV("IPL.12","IPL Status")
  1. . ;
  1. . ;IPL Class
  1. . I $D(@G@("CLASS")) D
  1. .. S N=$P(@G@("CLASS"),U,2)
  1. .. S VIEW("IPL.04")=N_$S(N]"":"",1:"^1")
  1. .. S CHG("IPL.04")="IPL Class set to"
  1. . I $D(VIEW("IPL.04")) D SV("IPL.04","IPL Class")
  1. . ;
  1. . ;Date of Onset
  1. . I $D(@G@("DATE OF ONSET")) D
  1. .. S N=$P(@G@("DATE OF ONSET"),U,2)
  1. .. S VIEW("IPL.13")=N_$S(N]"":"",1:"^1")
  1. .. S CHG("IPL.13")="IPL Date of Onset set to"
  1. . I $D(VIEW("IPL.13")) D SV("IPL.13","IPL Date of Onset")
  1. . ;
  1. . ;IPL PIP
  1. . I $D(@G@("PIP")) D
  1. .. S N=$P(@G@("PIP"),U,2)
  1. .. S VIEW("IPL.19")=N_$S(N]"":"",1:"^1")
  1. .. S CHG("IPL.19")="IPL PIP set to"
  1. . I $D(VIEW("IPL.19")) D SV("IPL.19","IPL PIP")
  1. . ;
  1. . ;POV - Ambulatory
  1. . I $D(@G@("USE AS POV (VISIT)")) D
  1. .. ;
  1. .. ;Determine if an add or remove POV
  1. .. S N=@G@("USE AS POV (VISIT)")
  1. .. ;
  1. .. ;Add
  1. .. I $P(N,U,2)]"" D
  1. ... S VIEW("APOV."_$P(N,U,3))=$P(N,U,2)
  1. ... S CHG("APOV."_$P(N,U,3))="Problem set as POV for visit"
  1. .. ;
  1. .. ;Remove
  1. .. I $P(N,U,2)="" D
  1. ... S VIEW("APOV."_$P(N,U,3))=$P(N,U)_U_1
  1. ... S CHG("APOV."_$P(N,U,3))="Problem removed as POV for visit"
  1. . I $O(VIEW("APOV."))["APOV." D
  1. .. NEW POV
  1. .. D SV()
  1. .. S POV="APOV." F S POV=$O(VIEW(POV)) Q:POV'["APOV." D
  1. ... I $P(VIEW(POV),U,2)'=1 D SV(POV,"Problem used as POV for visit") Q
  1. ... S VIEW(POV)=$P(VIEW(POV),U) D SV(POV,"")
  1. ... K VIEW(POV)
  1. . ;
  1. . ;POV - Inpatient
  1. . I $D(@G@("USED FOR INPATIENT")) D
  1. .. ;
  1. .. ;Determine if an add or remove POV
  1. .. S N=@G@("USED FOR INPATIENT")
  1. .. ;
  1. .. ;Add
  1. .. I $P(N,U,2)]"" D
  1. ... S VIEW("IPOV."_$P(N,U,3))=$P(N,U,2)
  1. ... S CHG("IPOV."_$P(N,U,3))="Problem set as POV for inpatient visit"
  1. .. ;
  1. .. ;Remove
  1. .. I $P(N,U,2)="" D
  1. ... S VIEW("IPOV."_$P(N,U,3))=$P(N,U)_U_1
  1. ... S CHG("IPOV."_$P(N,U,3))="Problem removed as POV for inpatient visit"
  1. . I $O(VIEW("IPOV."))["IPOV." D
  1. .. NEW POV
  1. .. D SV()
  1. .. S POV="IPOV." F S POV=$O(VIEW(POV)) Q:POV'["IPOV." D
  1. ... I $P(VIEW(POV),U,2)'=1 D SV(POV,"Problem used as POV for inpatient visit") Q
  1. ... S VIEW(POV)=$P(VIEW(POV),U) D SV(POV,"")
  1. ... K VIEW(POV)
  1. . ;
  1. . ;Severity Qualifier
  1. . I $D(@G@("SEVERITY")) D
  1. .. S N=$P(@G@("SEVERITY"),U,2)
  1. .. S VIEW("IPL.SEV")=$P($$CONC^BSTSAPI(N_"^^^1"),U,4)_$S(N]"":"",1:"^1")
  1. .. S CHG("IPL.SEV")="Severity Qualifier set to"
  1. . I $D(VIEW("IPL.SEV")) D SV("IPL.SEV","Severity Qualifier")
  1. . ;
  1. . ;PIP Change Header
  1. . D SV()
  1. . D SV("","PIP Listing:")
  1. . D SV()
  1. . ;
  1. . ;PIP Add/Edit
  1. . I $D(@G@("PLACEHOLDER FIELD")) D SV("","Problem Added to PIP")
  1. . ;
  1. . ;PIP Status
  1. . I $D(@G@("CURRENT STATUS")) D
  1. .. S N=$P(@G@("CURRENT STATUS"),U,2)
  1. .. S VIEW("PIP.08")=N_$S(N]"":"",1:"^1")
  1. .. S CHG("PIP.08")="PIP Status set to"
  1. . I $D(VIEW("PIP.08")) D SV("PIP.08","PIP Status")
  1. . ;
  1. . ;PIP Scope
  1. . I $D(@G@("CURRENT SCOPE")) D
  1. .. S N=$P(@G@("CURRENT SCOPE"),U,2)
  1. .. S VIEW("PIP.07")=N_$S(N]"":"",1:"^1")
  1. .. S CHG("PIP.07")="PIP Scope set to"
  1. . I $D(VIEW("PIP.07")) D SV("PIP.07","PIP Scope")
  1. . ;
  1. . ;PIP Priority
  1. . I $D(@G@("CURRENT PRIORITY")) D
  1. .. S N=$P(@G@("CURRENT PRIORITY"),U,2)
  1. .. S VIEW("PIP.06")=N_$S(N]"":"",1:"^1")
  1. .. S CHG("PIP.06")="PIP Priority set to"
  1. . I $D(VIEW("PIP.06")) D SV("PIP.06","PIP Priority")
  1. . ;
  1. . ;PIP Definitive EDD
  1. . I $D(@G@("CURRENT DEFINITIVE EDD")) D
  1. .. S N=$P(@G@("CURRENT DEFINITIVE EDD"),U,2)
  1. .. S VIEW("PIP.09")=N_$S(N]"":"",1:"^1")
  1. .. S CHG("PIP.09")="PIP Problem Definitive EDD set to"
  1. . I $D(VIEW("PIP.09")) D SV("PIP.09","PIP Problem Definitive EDD")
  1. . ;
  1. . ;PIP
  1. . I $D(@G@("PIPF")) D
  1. .. S N=$P(@G@("PIPF"),U,2)
  1. .. S VIEW("PIP.5.02")=N_$S(N]"":"",1:"^1")
  1. .. S CHG("PIP.5.02")="PIP Flag set to"
  1. . I $D(VIEW("PIP.5.02")) D SV("PIP.5.02","PIP Flag")
  1. . ;
  1. . ;PIP Date
  1. . I $D(@G@("PIP DATE")) D
  1. .. S N=$P(@G@("PIP DATE"),U,2)
  1. .. S VIEW("PIP.5.01")=N_$S(N]"":"",1:"^1")
  1. .. S CHG("PIP.5.01")="PIP Flag Date set to"
  1. . I $D(VIEW("PIP.5.01")) D SV("PIP.5.01","PIP Flag Date")
  1. . ;
  1. . ;PIP User
  1. . I $D(@G@("PIP USER")) D
  1. .. S N=$P(@G@("PIP USER"),U,2)
  1. .. S VIEW("PIP.5.03")=N_$S(N]"":"",1:"^1")
  1. .. S CHG("PIP.5.03")="PIP Flag User set to"
  1. . I $D(VIEW("PIP.5.03")) D SV("PIP.5.03","PIP Flag User")
  1. . ;
  1. . ;Goal Notes
  1. . I $O(@G@("GOAL."))["GOAL." D
  1. .. NEW GENT
  1. .. ;
  1. .. ;Loop through each entry
  1. .. S GENT="GOAL." F S GENT=$O(@G@(GENT)) Q:GENT'["GOAL." D
  1. ... ;
  1. ... NEW CSTS,XSTS,N,NIEN
  1. ... S CSTS=$P(GENT,".",2)
  1. ... S XSTS=@G@(GENT)
  1. ... S N="",NIEN=0 F S NIEN=$O(^AUPNCPL(CSTS,12,NIEN)) Q:'+NIEN D
  1. .... S N=N_$S(N]"":$C(13)_$C(10),1:"")_$G(^AUPNCPL(CSTS,12,NIEN,0))
  1. ... S VIEW("GOAL."_CSTS_".A")=XSTS_$S(XSTS="ACTIVE":"",1:"^2")
  1. ... S VIEW("GOAL."_CSTS_".N")=N_$S(XSTS="ACTIVE":"",1:"^2")
  1. ... S CHG("GOAL."_CSTS_".A")="Goal Note status set to"
  1. ... S:XSTS="ACTIVE" CHG("GOAL."_CSTS_".N")="Goal Note set to"
  1. . I $O(VIEW("GOAL."))["GOAL." D
  1. .. D SV(),SV("","GOAL NOTES"),SV()
  1. .. NEW GENT
  1. .. S GENT="GOAL." F S GENT=$O(VIEW(GENT)) Q:GENT'["GOAL." D
  1. ... NEW STS,NOTE
  1. ... I GENT[".A" D SV(GENT,"Goal Note status")
  1. ... I GENT[".N" D SV(GENT,"Goal Note"),SV()
  1. ... I $P(VIEW(GENT),U,2)=2 K VIEW(GENT)
  1. . ;
  1. . ;Care Plans
  1. . I $O(@G@("CARE."))["CARE." D
  1. .. NEW GENT
  1. .. ;
  1. .. ;Loop through each entry
  1. .. S GENT="CARE." F S GENT=$O(@G@(GENT)) Q:GENT'["CARE." D
  1. ... ;
  1. ... NEW CSTS,XSTS,N,NIEN
  1. ... S CSTS=$P(GENT,".",2)
  1. ... S XSTS=@G@(GENT)
  1. ... S N="",NIEN=0 F S NIEN=$O(^AUPNCPL(CSTS,12,NIEN)) Q:'+NIEN D
  1. .... S N=N_$S(N]"":$C(13)_$C(10),1:"")_$G(^AUPNCPL(CSTS,12,NIEN,0))
  1. ... S VIEW("CARE."_CSTS_".A")=XSTS_$S(XSTS="ACTIVE":"",1:"^2")
  1. ... S VIEW("CARE."_CSTS_".N")=N_$S(XSTS="ACTIVE":"",1:"^2")
  1. ... S CHG("CARE."_CSTS_".A")="Care Plan status set to"
  1. ... S:XSTS="ACTIVE" CHG("CARE."_CSTS_".N")="Care Plan set to"
  1. . I $O(VIEW("CARE."))["CARE." D
  1. .. D SV(),SV("","CARE PLANS"),SV()
  1. .. NEW GENT
  1. .. S GENT="CARE." F S GENT=$O(VIEW(GENT)) Q:GENT'["CARE." D
  1. ... NEW STS,NOTE
  1. ... I GENT[".A" D SV(GENT,"Care Plan status")
  1. ... I GENT[".N" D SV(GENT,"Care Plan"),SV()
  1. ... I $P(VIEW(GENT),U,2)=2 K VIEW(GENT)
  1. . ;
  1. . ;Visit Instructions
  1. . I $O(@G@("VINS."))["VINS." D
  1. .. NEW VENT
  1. .. ;
  1. .. ;Loop through each entry
  1. .. S VENT="VINS." F S VENT=$O(@G@(VENT)) Q:VENT'["VINS." D
  1. ... ;
  1. ... NEW CSTS,XSTS,N,NIEN,VDT
  1. ... S CSTS=$P(VENT,".",2)
  1. ... S N="",NIEN=0 F S NIEN=$O(^AUPNVVI(CSTS,11,NIEN)) Q:'+NIEN D
  1. .... S N=N_$S(N]"":$C(13)_$C(10),1:"")_$G(^AUPNVVI(CSTS,11,NIEN,0))
  1. ... S VIEW("VINS."_CSTS_".N")=N
  1. ... S VIEW("VINS."_CSTS_".D")=$$GET1^DIQ(9000010.58,CSTS_",",.03,"E")
  1. ... S CHG("VINS."_CSTS_".N")="Visit Instruction set to"
  1. . I $O(VIEW("VINS."))["VINS." D
  1. .. D SV(),SV("","VISIT INSTRUCTIONS"),SV()
  1. .. NEW VENT
  1. .. S VENT="VINS." F S VENT=$O(VIEW(VENT)) Q:VENT'["VINS." D
  1. ... I VENT[".D" D SV(VENT,"Visit Date")
  1. ... I VENT[".N" D SV(VENT,"Visit Instruction"),SV()
  1. . ;
  1. . ;Treatment Regimen
  1. . I $O(@G@("VTR."))["VTR." D
  1. .. NEW VENT
  1. .. ;
  1. .. ;Loop through each entry
  1. .. S VENT="VTR." F S VENT=$O(@G@(VENT)) Q:VENT'["VTR." D
  1. ... ;
  1. ... NEW CSTS,XSTS,N,NIEN,VDT
  1. ... S CSTS=$P(VENT,".",2)
  1. ... S N=$$GET1^DIQ(9000010.61,CSTS_",",.01,"I") Q:N=""
  1. ... S N=$P($$CONC^BSTSAPI(N_"^^^1"),U,4) Q:N=""
  1. ... S VIEW("VTR."_CSTS_".N")=N
  1. ... S VIEW("VTR."_CSTS_".D")=$$GET1^DIQ(9000010.61,CSTS_",",.03,"E")
  1. ... S CHG("VTR."_CSTS_".N")="Treatment Regimen set to"
  1. . I $O(VIEW("VTR."))["VTR." D
  1. .. D SV(),SV("","TREATMENT REGIMEN"),SV()
  1. .. NEW VENT
  1. .. S VENT="VTR." F S VENT=$O(VIEW(VENT)) Q:VENT'["VTR." D
  1. ... I VENT[".D" D SV(VENT,"Visit Date")
  1. ... I VENT[".N" D SV(VENT,"Treatment Regimen"),SV()
  1. . ;
  1. . ;Education
  1. . I $O(@G@("VEDU."))["VEDU." D
  1. .. NEW VENT
  1. .. ;
  1. .. ;Loop through each entry
  1. .. S VENT="VEDU." F S VENT=$O(@G@(VENT)) Q:VENT'["VEDU." D
  1. ... ;
  1. ... NEW CSTS,XSTS,N,NIEN,VDT,SCNT,SMD,RED,TIM
  1. ... S CSTS=$P(VENT,".",2),SCNT=0
  1. ... S N=$$GET1^DIQ(9000010.16,CSTS_",",.01,"E") Q:N=""
  1. ... ;S N=$P($$CONC^BSTSAPI(N_"^^^1"),U,4) Q:N=""
  1. ... S VIEW("VEDU."_CSTS_".N")=N
  1. ... S VIEW("VEDU."_CSTS_".D")=$$GET1^DIQ(9000010.16,CSTS_",",.03,"E")
  1. ... S CHG("VEDU."_CSTS_".N")="Patient Education set to"
  1. ... ;
  1. ... ;Snomed
  1. ... S SMD=$$GET1^DIQ(9000010.16,CSTS_",",1301,"I") I SMD]"" D
  1. .... S SCNT=SCNT+1
  1. .... S CHG("VEDU."_CSTS_".S1."_SCNT)="SNOMED Topic set to"
  1. .... S VIEW("VEDU."_CSTS_".S1."_SCNT)=$P($$CONC^BSTSAPI(SMD_"^^^1"),U,4)
  1. ... S SMD="" F S SMD=$O(^AUPNVPED(CSTS,26,"B",SMD)) Q:SMD="" D
  1. .... S SCNT=SCNT+1
  1. .... S CHG("VEDU."_CSTS_".S2."_SCNT)="SNOMED set to"
  1. .... S VIEW("VEDU."_CSTS_".S2."_SCNT)=$P($$CONC^BSTSAPI(SMD_"^^^1"),U,4)
  1. ... ;
  1. ... ;Readiness to learn
  1. ... S RED=$$GET1^DIQ(9000010.16,CSTS_",",1102,"E") I RED]"" D
  1. .... S CHG("VEDU."_CSTS_".R1")="Readiness to learn set to"
  1. .... S VIEW("VEDU."_CSTS_".R1")=RED
  1. ... ;
  1. ... ;Length of Educ (Minutes)
  1. ... S TIM=$$GET1^DIQ(9000010.16,CSTS_",",.08,"I") I TIM]"" D
  1. .... S CHG("VEDU."_CSTS_".R2")="Length of education (minutes) set to"
  1. .... S VIEW("VEDU."_CSTS_".R2")=TIM
  1. . I $O(VIEW("VEDU."))["VEDU." D
  1. .. D SV(),SV("","PATIENT EDUCATION")
  1. .. NEW VENT
  1. .. S VENT="VEDU." F S VENT=$O(VIEW(VENT)) Q:VENT'["VEDU." D
  1. ... I VENT[".D" D SV(),SV(VENT,"Visit Date")
  1. ... I VENT[".N" D SV(VENT,"Patient Education")
  1. ... I VENT[".S1" D SV(VENT,"SNOMED Topic")
  1. ... I VENT[".S2" D SV(VENT,"SNOMED")
  1. ... I VENT[".R2" D SV(VENT,"Length of education (minutes)")
  1. ... I VENT[".R1" D SV(VENT,"Readiness to learn")
  1. . ;
  1. . ;Tack on Change on/by
  1. . D SV()
  1. . D SV("","Changes made on: "_$$FMTE^BJPNPRL(ADT))
  1. . D SV("","Changes made by: "_$$GET1^DIQ(200,USER_",",".01","E"))
  1. . D SV(),SV()
  1. . ;
  1. . ;Display current information if this is the last entry
  1. . ;
  1. . ;There is another entry
  1. . I $$NEXT(.RET,ADT,USER) Q
  1. . ;
  1. . ;Qualifiers
  1. . D QUAL(PRBIEN)
  1. . ;
  1. . ;See if the last one
  1. . I '$$NEXT(.RET,ADT,USER) D
  1. .. D SV(),SV("",LINE)
  1. .. D SV("","PIP/IPL ACTIVITY HISTORY")
  1. .. D SV()
  1. ;
  1. S ACNT="" F S ACNT=$O(@TMP@(ACNT),-1) Q:ACNT="" D
  1. . S TCNT="" F S TCNT=$O(@TMP@(ACNT,TCNT)) Q:TCNT="" D
  1. .. S II=II+1,@DATA@(II)=@TMP@(ACNT,TCNT)_$C(13)_$C(10)
  1. I II>0 S @DATA@(II)=$G(@DATA@(II))_$C(30)
  1. ;
  1. XDET I $G(RET)]"" K @RET
  1. I $G(TMP)]"" K @TMP
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. NEXT(RET,ADT,USER) ;Check if there is an entry after this one
  1. ;
  1. ;First see if there is another user entry
  1. I $O(@RET@(ADT,USER))]"" Q 1
  1. ;
  1. ;Now see if there is another date
  1. I $O(@RET@(ADT))]"" Q 1
  1. ;
  1. Q 0
  1. ;
  1. SV(P,F) ;Increment the scratch entry
  1. ;
  1. S P=$G(P),F=$G(F)
  1. ;
  1. ;Skip a line
  1. I P="",F="" S TCNT=TCNT+1,@TMP@(ACNT,TCNT)="" Q
  1. ;
  1. ;Non-data line
  1. I P="",F]"" S TCNT=TCNT+1,@TMP@(ACNT,TCNT)=F Q
  1. ;
  1. ;Data line
  1. S TCNT=TCNT+1,@TMP@(ACNT,TCNT)=$S($D(CHG(P)):CHG(P),1:F)_": "
  1. S @TMP@(ACNT,TCNT)=@TMP@(ACNT,TCNT)_$S($P(VIEW(P),U)]"":$P(VIEW(P),U),$P(VIEW(P),U,2)=1:"<Value Deleted>",1:"")
  1. ;
  1. ;Clear delete flag
  1. S:$P(VIEW(P),U,2)=1 VIEW(P)=$P(VIEW(P),U)
  1. ;
  1. Q
  1. ;
  1. QUAL(IEN) ;Get any qualifiers for this problem
  1. NEW AIEN,IEN2,BY,WHEN,X,FNUM,Q,FIRST
  1. I $D(^AUPNPROB(IEN,13))!($D(^AUPNPROB(IEN,17)))!($D(^AUPNPROB(IEN,18))) D SV("","QUALIFIERS")
  1. F X=13,17,18 D
  1. . S FIRST=0
  1. . S FNUM=$S(X=13:9000011.13,X=17:9000011.17,X=18:9000011.18)
  1. . S IEN2=0 F S IEN2=$O(^AUPNPROB(IEN,X,IEN2)) Q:'+IEN2 D
  1. .. S AIEN=IEN2_","_IEN_","
  1. .. S Q=$$GET1^DIQ(FNUM,AIEN,.01)
  1. .. ;
  1. .. ;Skip Qualifier Attributes entry
  1. .. I X=13,Q=246112005 Q
  1. .. I X=18,Q=263502005 Q
  1. .. ;
  1. .. ;Print header
  1. .. I FIRST=0 D
  1. ... I X=13 D SV(),SV("","Severity:")
  1. ... I X=18 D SV(),SV("","Clinical Course:")
  1. ... S FIRST=1
  1. .. ;
  1. .. ;Display the entry
  1. .. S Q=$$CONCEPT^BGOPAUD(Q)
  1. .. D SV("",Q)
  1. .. I X=13 D
  1. ... S BY=$$GET1^DIQ(FNUM,AIEN,.02)
  1. ... S WHEN=$$GET1^DIQ(FNUM,AIEN,.03)
  1. ... D SV("","Entered by: "_BY_" On: "_WHEN)
  1. Q
  1. ICD(IEN) ;Get any additional ICD codes for this problem
  1. N AIEN,IEN2
  1. I $D(^AUPNPROB(IEN,12)) D ADD2(" Additional ICD Codes")
  1. S IEN2=0 F S IEN2=$O(^AUPNPROB(IEN,12,IEN2)) Q:'+IEN2 D
  1. .S AIEN=IEN2_","_IEN_","
  1. .D ADD2($$GET1^DIQ(9000011.12,AIEN,.01))
  1. Q
  1. ADD1(TXT,LBL) ;
  1. ;S CNT=CNT+1 S @RET@(CNT)=$S($D(LBL):$$LJ^XLFSTR(LBL,20),1:"")_$G(TXT),LBL=""
  1. Q
  1. ADD2(TXT) ;
  1. ;S CNT=CNT+1 S @RET@(CNT)=TXT
  1. Q