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

TIUZRT.m

Go to the documentation of this file.
  1. TIUZRT ; DAL/GT-NDS - TIU -CALLABLE ENTRY POINTS FOR ZRT SEGEMENT ;9/6/16
  1. ;;1.0;TEXT INTEGRATION UTILITIES;**309**;Jun 20, 1997;Build 5
  1. ;
  1. ;
  1. Q
  1. ZRT ;Manipulate update of MFN ZRT segment for 8926.1 file
  1. I IEN,((NAME="Term")!(NAME="Status")) K XXIEN ;This is the indication that it's first update for any subfile
  1. S:$D(HLNODE(1)) HLNODE=HLNODE_HLNODE(1)
  1. G 89261:IFN=8926.1
  1. Q
  1. ;
  1. 89261 ;Manipulate update of MFN ZRT segment for 8926.1 File
  1. N X,XX,ERR,IENS,IEN1,IENX,X1,X2,X4,DA,DIK,I,FDAA
  1. I IEN,NAME="VistA_Mapping_Target" D Q ;ZRT^VistA_CodingSystem_Mapping^LOINC:90701,90743
  1. .S X=$P(HLNODE,HLFS,3) ;X=LOINC:90701,90743
  1. .I '$L(X)!(X="""""") D DS(8926.12,IEN) S OUT=1 Q ;Q:$G(OUT) ;If there is nothing coming from Push, wipe anything was there before
  1. .I '$G(XXIEN(8926.12)) D DS(8926.12,IEN) S XXIEN(8926.12)=1 ;CLEAN SUBFILE ENTRY
  1. .S X1=$P(X,":"),X2=$P(X,":",2)
  1. .D DUP(8926.12,X1,X2) ; Checup for duplicate coding system (ICD, 10D, CPT...) and codes
  1. .Q:$G(ERROR)
  1. .S IENS=IEN_","
  1. .S IEN1="+1,",FDAA(8926.12,"+1,"_IENS,.01)=X1
  1. .F I=2:1 S X4=$P(X2,",",I-1) Q:'$L(X4) S IENX="+"_I_","_IEN1_IENS,FDAA(8926.121,IENX,.01)=X4
  1. .D:$D(FDAA) UPDATE^DIE("","FDAA",,"ERR")
  1. .I $D(ERR) D Q
  1. ..S ERROR="1^subfile update error SUBFILE#: 8926.121 HLNODE:"_HLNODE
  1. ..D EM^XUMF1H(ERROR,.ERR)
  1. .Q:$G(ERROR)
  1. .S OUT=1
  1. Q
  1. ;
  1. DS(SUBFILE,IENS) ;Delete subfile
  1. N ROOT,IDX,X
  1. S ROOT=$$ROOT^DILFD(SUBFILE,","_IENS,1)
  1. S IDX=0 F S IDX=$O(@ROOT@(IDX)) Q:'IDX D
  1. .N DA,DIK,DIC S DA(1)=+IENS,DA=IDX,DIK=$P(ROOT,")")_"," D ^DIK
  1. Q
  1. ;
  1. DUP(SUB,X1,X2) ;
  1. ;Checkup for duplicate coding system (ICD, 10D, CPT...)
  1. D GETS^DIQ(IFN,IEN_",","**","","TMP") ;TMP(8926.12 - .128,"1,7,",.01)=86485 X1=CPT X2=1234,4567,7890
  1. S II="" F S II=$O(TMP(SUB,II)) Q:'II S X3=$G(TMP(SUB,II,.01)) I $L(X3),X3=X1 D Q
  1. .S ERROR="1^Error - "_II_" Duplicate Coding System"_" File #: "_IFN_" HLNODE="_HLNODE
  1. Q:$G(ERROR)
  1. ;Checkup for duplicate codes. (CPT:90701,90743,90701)
  1. N X6
  1. F I=1:1 S X5=$P(X2,",",I) Q:'$L(X5) S X6(X5)=$G(X6(X5))+1 I X6(X5)>1 D Q
  1. .S ERROR="1^Error - Duplicate Codes in Coding System"_" File #: "_IFN_" HLNODE="_HLNODE ;D ^%ZTER
  1. Q
  1. ;
  1. M89261 ;Conversion of File: 8926.1 FIELD: 2 CODING SYSTEM From: CPT to CPT:00001,00002
  1. ;TMP1(2,"8926.12","1,7,",".01")="CPT" D GETS^DIQ(X2,IENS,"*","","TMP1(LEV)")
  1. N TMP,X4,X3,II
  1. S X4=TMP1(LEV,X2,IENS,I)_":" ;X4=CPT:
  1. D GETS^DIQ(8926.12,IENS,"**","","TMP") ;TMP(8926.121,"1,1,7,",.01)=86485
  1. S II="" F S II=$O(TMP(8926.121,II)) Q:'II S X3=$G(TMP(8926.121,II,.01)) S:$L(X3) X4=X4_X3_","
  1. S:$L(X3) X4=$E(X4,1,$L(X4)-1) S TMP1(LEV,X2,IENS,I)=X4
  1. Q