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

BJPNSPOV.m

Go to the documentation of this file.
  1. BJPNSPOV ;GDIT/HS/BEE-Prenatal Care Module POV Handling ; 08 May 2012 12:00 PM
  1. ;;2.0;PRENATAL CARE MODULE;**4,6,7,9**;Feb 24, 2015;Build 12
  1. ;
  1. Q
  1. ;
  1. POV(DATA,INP,QUAL,INJ) ;EP - BJPN SET POV
  1. ;
  1. ;Set the problem as the POV for the visit
  1. ;
  1. ;Input parameters
  1. ; INP = VPOV IEN [1] 28 Visit IEN [2] 28 Problem IEN [3] 28 Patient IEN [4] 28 Prov Text [5] 28 Descriptive CT [6] 28
  1. ; SNOMED CT [7] 28 ICD code [8] 28 Primary/Secondary [9] 28 Provider IEN [10] 28 asthma control [11] 28 Abnormal Findings [12]
  1. ; 28 Laterality Attribute|Qualifier [13] 28 Fracture SNOMED
  1. ; QUAL = Q[1] 28 TYPE [2] 28 IEN (If edit) [3] 28 SNOMED [4] 28 BY [5] 28 WHEN [6] 28 DEL [7]
  1. ; INJ = Cause DX[1] 28 Injury Code [2] 28 Injury Place [3] 28 First/Revisit [4] 28 Injury Dt [5] 28 Onset Date [6]
  1. ;
  1. ;Return value: SUCCESS^VPOV IEN^ERROR MESSAGE
  1. ;1^VPOV IEN - Success
  1. ;-1^^Error Message
  1. ;
  1. NEW UID,II,RET,RESULT,PPRV,VIEN,DXCAUSE,ZTQUEUED,POVIEN,ICD,AF
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BJPNSPOV",UID))
  1. K @DATA
  1. I $G(DT)=""!($G(U)="") D DT^DICRW
  1. ;
  1. ;Set ZTQUEUED - which fixes an error in the save with data getting displayed to the screen
  1. S ZTQUEUED=""
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BJPNSPOV D UNWIND^%ZTER" ; SAC 2009 2.2.3.17
  1. ;
  1. ;Define Header
  1. S @DATA@(II)="T00005RESULT^T00010POV_IEN^T00150ERROR_MESSAGE"_$C(30)
  1. ;
  1. ;Translate the incoming data delimiters
  1. S INP=$TR($G(INP),$C(28),"^")
  1. S QUAL=$TR($G(QUAL),$C(28),"^")
  1. S INJ=$TR($G(INJ),$C(28),"^")
  1. ;
  1. ;Only allow one ICD
  1. S ICD=$P(INP,U,8) I ICD["|" S $P(INP,U,8)=$P(ICD,"|")
  1. ;
  1. ;Make sure provider IEN is populated
  1. S VIEN=$P(INP,U,2)
  1. ;Default saved by to DUZ
  1. ;S PPRV=$P(INP,U,10)
  1. S PPRV=DUZ
  1. I PPRV="" S PPRV=$$PPRV^BJPNPKL(VIEN)
  1. S $P(INP,U,10)=PPRV
  1. ;
  1. ;Populate Q By/Date
  1. I $G(QUAL)]"" D
  1. . NEW %
  1. . I $P(QUAL,U,5)]"" Q
  1. . S $P(QUAL,U,5)=DUZ
  1. . D NOW^%DTC
  1. . S $P(QUAL,U,6)=%
  1. ;
  1. ;BJPN*2.0*6;Handle abnormal findings
  1. ;Convert AF from text to SNOMED
  1. S AF=$P(INP,U,12) S:AF="" AF="@"
  1. I AF]"",AF'="@" S AF=$O(^BSTS(9002318.6,"D","AF",AF,""))
  1. S $P(INP,U,12)=""
  1. ;
  1. ;Convert Dx Cause to uppercase
  1. S $P(INJ,U)=$$UPPER($P(INJ,U))
  1. ;
  1. ;Convert Injury Date
  1. S $P(INJ,U,5)=$$DATE^BJPNPRUT($P(INJ,U,5))
  1. ;
  1. ;Convert Onset Date
  1. S $P(INJ,U,6)=$$DATE^BJPNPRUT($P(INJ,U,6))
  1. ;
  1. ;Make the EHR POV call
  1. ;
  1. ;Process adds
  1. S RESULT=""
  1. I $TR($P(INP,U),$C(29))="" D
  1. . D SET^BGOVPOV(.RET,INP,QUAL,INJ,AF)
  1. . ;
  1. . ;Format output
  1. . I +RET>0 S RESULT="1^"_+RET
  1. . E S RESULT="-1^^"_$P(RET,U,2)
  1. ;
  1. ;Process edits
  1. I $TR($P(INP,U),$C(29))]"" D
  1. . NEW LIST,PC,PVIEN
  1. . S PVIEN=$P(INP,U) ;Clear PVIENs
  1. . S $P(INP,U,8)="" ;Clear ICD
  1. . S LIST=""
  1. . F PC=1:1:$L(PVIEN,$C(29)) I $P(PVIEN,$C(29),PC)]"" S LIST(PC-1)=$P(PVIEN,$C(29),PC)
  1. . S $P(INP,U)=""
  1. . D EDIT^BGOVPOV3(.RET,INP,.LIST,QUAL,INJ,AF)
  1. . ;
  1. . ;Format output
  1. . I +$P(RET,";",2)>0 S RESULT="1^"_+$P(RET,";",2)
  1. . E S RESULT="-1^^"_$P(RET,U,2)
  1. ;
  1. S II=II+1,@DATA@(II)=RESULT_$C(30)
  1. ;
  1. XPOV S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. ;
  1. FRACT(DATA,CONCID) ;EP - BJPN GET FRACTURE
  1. ;
  1. ;This RPC determines whether to prompt for fractures by returning the valid
  1. ;fracture choices
  1. ;
  1. ;Input:
  1. ; CONCID - The Concept ID
  1. ;
  1. ;Output:
  1. ; DISPLAY^SNOMED
  1. ;
  1. NEW UID,II,RESULT,PC
  1. ;
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BJPNSPOV",UID))
  1. K @DATA
  1. I $G(DT)=""!($G(U)="") D DT^DICRW
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BJPNSPOV D UNWIND^%ZTER" ; SAC 2009 2.2.3.17
  1. ;
  1. ;Define Header
  1. S @DATA@(II)="T00050DISPLAY_NAME^T00020SNOMED"_$C(30)
  1. ;
  1. ;Input validation
  1. I $G(CONCID)="" S II=II+1,@DATA@(II)="-1^MISSING CONCEPT ID"_$C(30) G XFRACT
  1. ;
  1. ;Retrieve the fracture information
  1. S RESULT=$P($$CONC^BSTSAPI(CONCID),U,11)
  1. I RESULT]"" F PC=1:1:$L(RESULT,";") D
  1. . NEW HEAL
  1. . S HEAL=$P(RESULT,";",PC) Q:$TR(HEAL,"|")=""
  1. . S II=II+1,@DATA@(II)=$P(HEAL,"|")_"^"_$P(HEAL,"|",2)_$C(30)
  1. ;
  1. XFRACT S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. UPPER(X) ;Convert to uppercase
  1. Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. NEW Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q