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

AUPNVUTL.m

Go to the documentation of this file.
  1. AUPNVUTL ; IHS/CMI/LAB - AUPN UTILITIES ; 25 Feb 2016 12:47 PM
  1. ;;2.0;IHS PCC SUITE;**2,10,11,15,16,17,22**;MAY 14, 2009;Build 6
  1. SNOMED(N) ;PEP - called from various dds provider narrative
  1. ;TRANSFORM TO ADD DESCRIPTIVE TEXT FOR SNOMED CODE IF THERE IS A "|" PIECE
  1. I $G(N)="" Q N
  1. S N=$P($G(^AUTNPOV(N,0)),U,1)
  1. I N'["|" Q N ; no vertical equals no snomed desc id
  1. I N["| " Q N ;prenatal v1.0
  1. I $T(DESC^BSTSAPI)="" Q N ;no snomed stuff installed
  1. NEW SDI,SDIT,LAT
  1. S (SDI,SDIT)=$P(N,"|",2) ;snomed descriptive id is in piece 2
  1. S LAT=$P(N,"|",3) ;laterality text is in piece 3
  1. I SDI?.AN S SDIT=$P($$DESC^BSTSAPI(SDI_"^^1"),U,2)
  1. I SDIT="",SDI]"" S SDIT=SDI
  1. I SDIT="" Q "*"_$P(N,"|",1) ;not snomed text?? somebody stored a bad descriptive id return "* | " per Susan
  1. Q SDIT_$S(LAT]"":", "_LAT,1:"")_" | "_$P(N,"|",1)
  1. PNPROB(N) ;PEP - called from various dds provider narrative
  1. ;TRANSFORM TO ADD DESCRIPTIVE TEXT FOR SNOMED CODE IF THERE IS A "|" PIECE
  1. ;N must be a valid IEN in AUTNPOV (provider narrative)
  1. I $G(N)="" Q N
  1. S N=$P($G(^AUTNPOV(N,0)),U,1)
  1. I N'["|" Q "*"_N ; no vertical equals no snomed desc id
  1. I N["| " Q N ;prenatal v1.0
  1. I $T(DESC^BSTSAPI)="" Q "*"_N ;no snomed stuff installed
  1. NEW SDI,SDIT,LAT
  1. S (SDI,SDIT)=$P(N,"|",2) ;snomed descriptive id is in piece 2
  1. S LAT=$P(N,"|",3) ;laterality text is in piece 3
  1. I SDI?.AN S SDIT=$P($$DESC^BSTSAPI(SDI_"^^1"),U,2)
  1. I SDIT="" S SDIT=SDI
  1. I SDIT="" Q "*"_$P(N,"|",1) ;not snomed text?? somebody stored a bad descriptive id return "* | " per Susan
  1. Q SDIT_$S(LAT]"":", "_LAT,1:"")_" | "_$P(N,"|",1)
  1. EXFIND(%) ;PEP - RETURN EXAM FINDING TEXT BASED ON SNOMED CODE
  1. ;NOTE: only 2 SNOMEDs are supported at this time, this will need to be updated if others are ever added.
  1. I %=162656002 Q "without abnormal findings"
  1. I %=71994000 Q "with abnormal findings"
  1. Q %
  1. AQ(%) ;PEP RETURN HUMAN READABLE LATERALITY ATTRIBUTE/QUALIFIER VALUE
  1. NEW A,Q,V,A1
  1. I $G(%)="" Q ""
  1. S A=$P(%,"|")
  1. I A="" S V="" G AQQ
  1. ;S V=$$CONCPT(A)
  1. S V=$$CVPARM^BSTSMAP1("LAT",A)
  1. I V="" S V=A ;if no text just use the code
  1. AQQ ;
  1. S V=V_"|"
  1. S Q=$P(%,"|",2)
  1. I Q="" Q V
  1. ;S A1=$$CONCPT(Q)
  1. S A1=$$CVPARM^BSTSMAP1("LAT",Q)
  1. I A1="" S A1=Q
  1. Q V_A1
  1. EDNAME(I) ;PEP - RETURN EDUCATION TOPIC TEXT
  1. ;if the topic contains a snomed display preferred term and then subtopic
  1. NEW N
  1. I $G(I)="" Q I
  1. S N=$P($G(^AUTTEDT(I,0)),U,1)
  1. I $P($G(^AUTTEDT(I,0)),U,12)="" Q N
  1. I $T(CONC^BSTSAPI)="" Q N ;no snomed stuff installed
  1. NEW SDI,SDIT
  1. S SDI=$P(N,"-",1) ;snomed descriptive id is in piece 2
  1. S SDIT=$$CONCPT(SDI)
  1. I SDIT="" Q N ;not snomed text?? somebody stored a bad descriptive id return "* | " per Susan
  1. Q SDIT_"-"_$P(N,"-",2)
  1. FSOT(X) ;PEP - FINDING SITE OUTPUT TX/COMPUTED FIELD
  1. ;get each | piece, then each ":" piece and get perferred term
  1. I $T(CONC^BSTSAPI)="" Q ""
  1. I $G(X)="" Q ""
  1. NEW A,B,V,D,E
  1. S V=""
  1. F A=1:1 S B=$P(X,"|",A) Q:B="" D
  1. .;S D=$P(B,":",1)
  1. .S E=$P(B,":",2)
  1. .I V]"" S V=V_", "
  1. .; V=V_$$CONCPT(D)_":"_$$CONCPT(E)
  1. .S V=V_$$CONCPT(E)
  1. Q V
  1. TESTFS ;
  1. ;
  1. S X="272741003:7771000|363698007:56459004"
  1. W $$FSOT(X)
  1. Q
  1. CONC(X) ;EP 22
  1. ;CALLED FROM VARIOUS PCC ROUTINES TO GET CONCEPT ID IF BSTS IS INSTALLED
  1. I $T(CONC^BSTSAPI)="" Q ""
  1. I $G(X)="" Q ""
  1. Q $$CONC^AUPNSICD(X_"^^^1")
  1. CONCPT(X) ;PEP - GET CONCEPT PREFERRED TERM
  1. ;CALLED FROM VARIOUS PCC ROUTINES TO GET CONCEPT ID PREFERRED TERM IF BSTS IS INSTALLED
  1. I $T(CONC^BSTSAPI)="" Q ""
  1. I $G(X)="" Q ""
  1. NEW D,B,E,V,A,B
  1. Q $P($$CONC^BSTSAPI(X_"^^^1"),U,4)
  1. DESCPT(X) ;PEP - GET DESC ID
  1. I $T(DESC^BSTSAPI)="" Q ""
  1. I $G(X)="" Q ""
  1. I $G(X)'?.AN Q X
  1. Q $P($$DESC^BSTSAPI(X_"^^1"),U,2)
  1. LOINCT(X) ;EP
  1. ;put api in here when get it from apelon group
  1. Q ""
  1. LOINCPT(X) ;EP
  1. ;put api in here when get it from apelon group
  1. Q ""
  1. ICD(X,Y,Z) ;PEP - CHECK FOR ICD10
  1. ;I $T(ICD^ATXAPI)]"" Q $$ICD^ATXAPI(X,Y,Z)
  1. Q $$ICD^ATXCHK(X,Y,Z)
  1. ;
  1. ICDDX(C,D,I) ;PEP - CHECK FOR ICD10
  1. I $G(I)="" S I="I"
  1. I $T(ICDDX^ICDEX)]"" Q $$ICDDX^ICDEX(C,$G(D),,I)
  1. Q $$ICDDX^ICDCODE(C,$G(D))
  1. ;
  1. ICDOP(C,D,I) ;PEP - CHECK FOR ICD10
  1. I $G(I)="" S I="E"
  1. I $T(ICDOP^ICDEX)]"" Q $$ICDOP^ICDEX(C,$G(D),,I)
  1. Q $$ICDOP^ICDCODE(C,$G(D))
  1. ;
  1. VSTD(C,D) ;EP - CHECK FOR ICD10
  1. I $T(VSTD^ICDEX)]"" Q $$VSTD^ICDEX(C,$G(D))
  1. Q $$VSTD^ICDCODE(C,$G(D))
  1. ;
  1. VSTP(C,D) ;EP - CHECK FOR ICD10
  1. I $T(VSTP^ICDEX)]"" Q $$VSTP^ICDEX(C,$G(D))
  1. Q $$VSTP^ICDCODE(C,$G(D))
  1. ;
  1. ICDD(C,A,D) ;EP - CHECK FOR ICD10
  1. I $T(ICDD^ICDEX)]"" Q $$ICDD^ICDEX(C,A,$G(D))
  1. Q $$ICDD^ICDCODE(C,A,$G(D))
  1. CONFSN(C) ;EP - FSN
  1. ;CALLED FROM VARIOUS PCC ROUTINES TO GET CONCEPT ID FSN IF BSTS IS INSTALLED
  1. I $T(CONC^BSTSAPI)="" Q ""
  1. I $G(X)="" Q ""
  1. Q $P($$CONC^BSTSAPI(X_"^^^1"),U,2)
  1. MC(X) ;EP - called from cross ref
  1. I $G(X)="" Q ""
  1. NEW A,B,C
  1. S A=$O(^AUTTREFR("B",X,0))
  1. I 'A Q ""
  1. Q $P($G(^AUTTREFR(A,0)),U,4)
  1. M07(X) ;EP - map .07 to 1.01
  1. I $G(X)="" Q ""
  1. NEW A
  1. S A=$O(^AUTTREFR("AM",X,0))
  1. I 'A Q ""
  1. Q $P(^AUTTREFR(A,0),U,1)
  1. ;
  1. IMP(%) ;EP
  1. Q $$IMP^ICDEX(%)
  1. REFR(%) ;PEP - REFUSAL REASON TEXT FORM
  1. I '$G(%) Q ""
  1. I '$D(^AUPNPREF(%,0)) Q ""
  1. NEW A,B,C
  1. S A=$$VAL^XBDIQ1(9000022,%,1.01)
  1. I A]"" S A=$$CONCPT(A)
  1. I A]"" Q A
  1. Q $$VAL^XBDIQ1(9000022,%,.07)
  1. IN6404 ;EP - input transform on .04 V Delivery
  1. NEW LIST,AUPNX
  1. K LIST
  1. S AUPNX=$$SUBLST^BSTSAPI("LIST","EHR LABOR ESTABLISHED")
  1. ;BUILD INDEX
  1. S AUPNX=0 F S AUPNX=$O(LIST(AUPNX)) Q:AUPNX'=+AUPNX S LIST("B",$P(LIST(AUPNX),U,1))=""
  1. I $O(LIST(0)),'$D(LIST("B",X)) K X Q
  1. Q
  1. IN6407 ;EP - input transform on .04 V Delivery
  1. NEW LIST,AUPNX
  1. K LIST
  1. S AUPNX=$$SUBLST^BSTSAPI("LIST","EHR LABOR INDUCTION TYPE")
  1. ;BUILD INDEX
  1. S AUPNX=0 F S AUPNX=$O(LIST(AUPNX)) Q:AUPNX'=+AUPNX S LIST("B",$P(LIST(AUPNX),U,1))=""
  1. I $O(LIST(0)),'$D(LIST("B",X)) K X Q
  1. Q