- PXRMEXU4 ;SLC/PJH,PKR - Reminder Exchange #4, dialog changes. ;Dec 07, 2021@12:24
- ;;2.0;CLINICAL REMINDERS;**6,12,22,26,45,71,65**;Feb 04, 2005;Build 438
- ;
- Q
- BLCONV(FDA) ;
- N BLIENS,ACT,IEN,IENS,LAST,TERM,SEQ,STATUS,REP
- S IENS=$O(FDA(801.44,"")) Q:IENS=""
- S IEN=$P(IENS,",",2)_","
- I $G(FDA(801.41,IEN,116))="" Q
- I $G(FDA(801.41,IEN,117))="" Q
- S TERM="RT."_FDA(801.41,IEN,116)
- S STATUS=$G(FDA(801.41,IEN,117))
- S REP=$S($G(FDA(801.41,IEN,118))'="":$G(FDA(801.41,IEN,118)),1:"")
- S ACT=$S(REP'="":"REPLACE",1:"HIDE")
- K FDA(801.41,IEN,116),FDA(801.41,IEN,117),FDA(801.41,IEN,118)
- S SEQ=1
- S LAST=$P($P(IENS,"+",2),",")
- S BLIENS=1+LAST_","_IEN
- S FDA(801.41143,"+"_BLIENS,.01)=1
- S FDA(801.41143,"+"_BLIENS,1)=TERM
- S FDA(801.41143,"+"_BLIENS,2)=STATUS
- S FDA(801.41143,"+"_BLIENS,3)=ACT
- I REP'="" S FDA(801.41143,"+"_BLIENS,4)=REP
- Q
- ;
- BLDCONV1(FDA) ;
- N IENS
- S IENS=""
- F S IENS=$O(FDA(801.41143,IENS)) Q:IENS="" D
- .I $P(FDA(801.41143,IENS,1),".")="TM" D
- ..S FDA(801.41143,IENS,1)="RT."_$P(FDA(801.41143,IENS,1),".",2)
- Q
- ;
- VIMMCONV(FDA,IENS,HASSKT,HASIMM) ;
- I HASSKT=0,HASIMM=0 Q
- N FIND,FINDINGS,TFINDS
- I HASSKT,HASIMM S FDA(801.41,IENS,3)="DISABLE AND SEND MESSAGE"
- S FIND=$G(FDA(801.41,IENS,15))
- I FIND'["ST.",FIND'["IM." K FDA(801.41,IENS,15)
- ;loop through additional findings
- S FIND="" F S FIND=$O(FDA(801.4118,FIND)) Q:FIND="" D
- . S FINDINGS=$G(FDA(801.4118,FIND,.01))
- . I FINDINGS["ST."!(FINDINGS["IM.")!(FINDINGS["TX.") Q
- . S TFINDS(FIND)=""
- .;kill off additional findings that are codes
- S FIND="" F S FIND=$O(TFINDS(FIND)) Q:FIND="" D
- .K FDA(801.4118,FIND)
- Q
- ;
- ;===============================================
- DLG(FDA,NAMECHG) ;Check the dialog for renamed entries, called by
- ;silent installer. KIDSDONE is newed in INSDLG^PXRMEXSI.
- N ABBR,ACTION,ALIST,DNAM,HASIMM,HASSKT,IEN,IENS,ISACT,FILENUM,FINDING,NEWNAM,OFINDING
- N RESULT,RRG,SRC,TEMP,TEXT,TIENS,TYPE,WP
- ;
- S HASIMM=0,HASSKT=0
- ;
- S IENS=$O(FDA(801.41,""))
- ;Definition .01
- S (PT01,DNAM)=FDA(801.41,IENS,.01)
- I $D(NAMECHG(801.41,PT01)) D
- .S (FDA(801.41,IENS,.01),DNAM)=NAMECHG(801.41,PT01)
- ;
- ;Build list of finding types
- D BLDALIST^PXRMVPTR(801.4118,.01,.ALIST)
- ;Plus field 15 files
- S ALIST("MH")=601.71,ALIST("TX")=811.2
- S ALIST("WH")=790.404
- ;Plus field 17 file
- S ALIST("OI")=101.43
- ;
- ;Process SOURCE REMINDER
- S SRC=$G(FDA(801.41,IENS,2))
- I SRC]"" D
- .S IEN=$$EXISTS^PXRMEXIU(811.9,SRC)
- .I IEN=0 K FDA(801.41,IENS,2)
- ;
- ;Clear RESULT if not defined
- S RESULT=$G(FDA(801.41,IENS,55))
- I RESULT]"" D
- .S IEN=$$EXISTS^PXRMEXIU(801.41,RESULT)
- .I IEN=0 K FDA(801.41,IENS,55)
- ;
- F TYPE="OI","FI","AF","DC","RG" D Q:+$G(PXRMDONE)=1
- .N FIELD,NUM
- .I TYPE="OI" S FIELD=17,NUM=801.41
- .I TYPE="FI" S FIELD=15,NUM=801.41
- .I TYPE="AF" S FIELD=.01,NUM=801.4118
- .I TYPE="DC" S FIELD=2,NUM=801.412
- .I TYPE="RG" S FIELD=.01,NUM=801.41121
- .I TYPE="FI" D TAXCONV(.FDA,IENS)
- .I NUM=801.4118!(NUM=801.412)!(NUM=801.41121) D
- ..S TIENS="",ACTION="" F S TIENS=$O(FDA(NUM,TIENS)) Q:TIENS=""!(PXRMDONE=1) D
- ...I (TYPE="AF") D FINDINGS(TIENS,NUM,FIELD,TYPE,.NAMECHG,.ACTION,.FDA,.PXRMDONE)
- ...I FDA(NUM,TIENS,.01)["ST." S HASSKT=1 Q
- ...I FDA(NUM,TIENS,.01)["IM." S HASIMM=1
- ...I TYPE'="AF" D COMPS(TIENS,NUM,FIELD,TYPE,.NAMECHG,.ACTION,.FDA,.PXRMDONE)
- .I NUM=801.41 D
- ..D FINDINGS(IENS,NUM,FIELD,TYPE,.NAMECHG,.ACTION,.FDA,.PXRMDONE)
- ..I $G(FDA(NUM,IENS,15))["ST." S HASSKT=1
- ..I $G(FDA(NUM,IENS,15))["IM." S HASIMM=1
- ;
- ;Look for replacements of TIU templates.
- I $D(NAMECHG(8927.1)) D
- .S WP=$G(FDA(801.41,IENS,25))
- .I WP'="" D TIURPL("{FLD:",WP,.NAMECHG,8927.1)
- .S WP=$G(FDA(801.41,IENS,35))
- ;
- D BLCONV(.FDA)
- I $D(FDA(801.41143)) D BLDCONV1(.FDA)
- D VIMMCONV(.FDA,IENS,HASSKT,HASIMM)
- Q
- ;
- ;===============================================
- ;Convert ICD9 codes to `ien format
- ICD9(CODE) ;
- N IEN
- S IEN=$$FIND1^DIC(80,"","AMX",$P(CODE,".",2,99))
- I 'IEN Q ""
- Q IEN
- ;
- ;
- COMPS(IENS,NUM,FIELD,TYPE,NAMECHG,ACTION,FDA,PXRMDONE) ;
- N FILENUM,IEN,NAMECHG,NEWNAME,PT01,TEXT
- F S IENS=$O(FDA(NUM,IENS)) Q:IENS="" D I ACTION="Q" K FDA S PXRMDONE=1 Q
- . S PT01=$G(FDA(NUM,IENS,FIELD)) Q:PT01=""
- . S FILENUM=801.41,NEWNAM=$G(NAMECHG(FILENUM,PT01))
- .I NEWNAM'="" D
- .. S FDA(NUM,IENS,2)=NEWNAM,PT01=NEWNAM
- .S IEN=$$EXISTS^PXRMEXIU(FILENUM,PT01)
- .I IEN=0 D
- ..;Get replacement
- .. N DIC,DIR,DUOUT,MSG,X,Y
- .. S MSG(1)=" "
- .. S MSG(2)=$S(TYPE="RG":"RESULT GROUP",1:"COMPONENT DIALOG")_" entry "_PT01_" does not exist."
- .. D MES^XPDUTL(.MSG)
- .. S ACTION=$$GETACT^PXRMEXIU("DPQ",.DIR)
- .. I ACTION="S" S ACTION="Q"
- .. I ACTION="Q" Q
- .. I ACTION="D" K FDA(NUM,IENS) Q
- .. S DIC=FILENUM
- .. S DIC(0)="AEMNQ"
- .. S DIC("S")="I ""S""[$P(^PXRMD(801.41,Y,0),U,4)"
- .. S Y=-1
- .. F Q:+Y'=-1 D
- ...;If this is being called during a KIDS install we need echoing on.
- ... I $D(XPDNM) X ^%ZOSF("EON")
- ... D ^DIC
- ... I $D(XPDNM) X ^%ZOSF("EOFF")
- ... I $D(DUOUT) S Y="" Q
- ... I Y=-1 D BMES^XPDUTL("You must input a replacement!")
- .. I Y="" S ACTION="Q" Q
- .. I Y'="" S FDA(NUM,IENS,.01)=$P(Y,U,2)
- Q
- ;
- FINDINGS(IENS,NUM,FIELD,TYPE,NAMECHG,ACTION,FDA,PXRMDONE) ;
- N ABBR,FILENUM,ITEM,IEN,NAMECHG,ORIG,SET,TEXT
- S (ITEM,ORIG)=$G(FDA(NUM,IENS,FIELD)),ACTION=""
- I ITEM'="" D I ACTION="Q" K FDA S PXRMDONE=1 Q
- .S TEXT=""
- .S ABBR=$S(TYPE="OI":"OI",1:$P(ITEM,".",1))
- .S PT01=$S(TYPE="OI":ITEM,1:$P(ITEM,".",2))
- .S FILENUM=$P(ALIST(ABBR),U)
- .I $D(NAMECHG(FILENUM,PT01)) D
- ..S ITEM=$S(TYPE="OI":NAMECHG(FILENUM,PT01),1:ABBR_"."_NAMECHG(FILENUM,PT01))
- ..S FDA(NUM,IENS,FIELD)=ITEM
- .S IEN=$S(TYPE="OI":+$$VFIND1^PXRMEXIU(ABBR_"."_ITEM,.ALIST),1:+$$VFIND1^PXRMEXIU(ITEM,.ALIST))
- .I IEN>0 S TEMP=$$VDLGFIND^PXRMEXIU(ABBR,IEN,.ALIST) I TEMP<1 D
- ..S IEN=0
- ..S TEXT=$S(TYPE="OI":"ORDERABLE ITEM",TYPE="AF":"ADDITIONAL FINDING",1:"FINDING")_" entry "_ITEM_" "_$S(TEMP=0:"is inactive.",1:" does not have codes marked to be used in a dialog.")
- .I IEN>0 S FDA(NUM,IENS,FIELD)=$S(TYPE="OI":"`"_IEN,1:ABBR_".`"_IEN)
- .I IEN=0 D
- ..S SET=0
- ..;I $D(^TMP($J,"PXRM FINDING REPLACE",NUM,FIELD,ORIG)) D
- ..;.S ITEM=$G(^TMP($J,"PXRM FINDING REPLACE",NUM,FIELD,ORIG)) I ITEM="" Q
- ..I $D(^TMP($J,"PXRM FINDING REPLACE",ORIG)) D
- ...S ITEM=$G(^TMP($J,"PXRM FINDING REPLACE",ORIG)) I ITEM="" Q
- ...S FDA(NUM,IENS,FIELD)=ITEM,SET=1
- ..I SET=1 Q
- ..I TEXT="" S TEXT=$S(TYPE="OI":"ORDERABLE ITEM",TYPE="AF":"ADDITIONAL FINDING",1:"FINDING")_" entry "_ITEM_" does not exist."
- ..;Get replacement
- ..N DIC,DIR,DUOUT,MSG,X,Y
- ..S MSG(1)=" "
- ..S MSG(2)=TEXT
- ..D MES^XPDUTL(.MSG)
- ..S ACTION=$$GETACT^PXRMEXIU("DPQ",.DIR) I ACTION="S" S ACTION="Q"
- ..I ACTION="Q" Q
- ..I ACTION="D" K FDA(NUM,IENS,FIELD) Q
- ..S DIC=FILENUM
- ..S DIC(0)="AEMNQ"
- ..S DIC("S")="I $$FILESCR^PXRMDLG6(Y,FILENUM)=1"
- ..S Y=-1
- ..F Q:+Y'=-1 D
- ...;If this is being called during a KIDS install we need echoing on.
- ...I $D(XPDNM) X ^%ZOSF("EON")
- ...D ^DIC
- ...I $D(XPDNM) X ^%ZOSF("EOFF")
- ...;If this is being called during a KIDS install we need echoing on.
- ...I $D(DUOUT) S Y="" Q
- ...I Y=-1 D BMES^XPDUTL("You must input a replacement!")
- ..I Y="" S ACTION="Q" Q
- ..S ITEM=$S(TYPE="OI":$P(Y,U,2),1:ABBR_"."_$P(Y,U,2))
- ..S FDA(NUM,IENS,FIELD)=ITEM
- .;Save the finding information for the history.
- .I ITEM'=ORIG D
- .. S ^TMP("PXRMEXIA",$J,"DIAF",$P(IENS,",",1),ORIG)=ITEM
- .. S ^TMP($J,"PXRM FINDING REPLACE",ORIG)=ITEM
- Q
- ;
- SETWARN(TEXT) ;
- S TEXT(1)="PREVIOUSLY THE DIALOG WAS SET TO BOTH CURRENT AND HISTORICAL ENCOUNTERS."
- S TEXT(2)="DIALOG IS NOW SET TO CURRENT ENCOUNTER ONLY."
- S TEXT(3)="REVIEW THE DIALOG BEFORE USING IN CPRS."
- Q
- ;
- TAXARRAY(FINDING,CNT,ARRAY) ;
- ; add to code list to create a new taxonomy
- N CODE,CODESYS,CODESYSN,IEN
- S CODESYS=$P(FINDING,"."),CODE=$P(FINDING,".",2,99)
- I $P(CODESYS,".")'["ICD9",$P(CODESYS,".")'["CPT" Q
- S CODESYSN=$S(CODESYS[9:"ICD",1:"CPT")
- S IEN=$$EXISTS^PXRMEXIU($S(CODESYSN="ICD":80,1:81),CODE)
- S CNT=CNT+1,ARRAY("CODE",CODESYSN,IEN)="I"_U_1
- Q
- ;
- TAXCONV(FDA,IENS) ;
- ; FINDING ITEM FDA(801.41,IENS,15)
- ; ADDITIONAL FINDINGS FDA(801.4118,IENS)
- N ADDIENS,ARRAY,CNT,ERROR,FINDING,FINDS,ISFNDFLD,LAST,NAME,OCNT,TAX,TAXNAME,TEMP,TFINDS
- S ISFNDFLD=0,CNT=0
- ;if finding is taxonomy add the correct fields to the element
- S FINDING=$G(FDA(801.41,IENS,15))
- I $P(FINDING,".")="TX" D TAXCONV1(.FDA,IENS,FINDING) Q
- ;
- I FINDING'="" D
- .D TAXARRAY(FINDING,.CNT,.ARRAY)
- .;if array defined then finding has a code kill the node off.
- .I $D(ARRAY) S ISFNDFLD=1 K FDA(801.41,IENS,15)
- ;loop through additional findings
- S FINDS="" F S FINDS=$O(FDA(801.4118,FINDS)) Q:FINDS="" D
- . S FINDING=FDA(801.4118,FINDS,.01)
- . S OCNT=CNT D TAXARRAY(FINDING,.CNT,.ARRAY) I CNT>OCNT S TFINDS(FINDS)=""
- ;kill off additional findings that are codes
- S ADDIENS=""
- S FINDS="" F S FINDS=$O(TFINDS(FINDS)) Q:FINDS="" D
- .K FDA(801.4118,FINDS)
- .I ADDIENS="" S ADDIENS=FINDS
- I '$D(ARRAY) Q
- ;build values to crate a new taxonomy
- S NAME=$G(FDA(801.41,IENS,.01))
- S TEMP=$$RTAXNAME^PXRMDUTL(NAME)
- S ARRAY("NAME")=TEMP
- S ARRAY("COUNT")=CNT
- S ARRAY("CLASS")=$G(FDA(801.41,IENS,100))
- S ARRAY("SOURCE")="Exchange installed of dialog "_NAME
- ;create new taxonomy API
- S TAX=$$CRETAX^PXRMTXIM("E",.ARRAY,.ERROR)
- I $D(ERROR) D Q
- .I $G(TAX)=0 D BMES^XPDUTL("ERROR: Taxonomy could not be created for dialog "_NAME_".") H 1 Q
- .D BMES^XPDUTL("ERROR: failed to add all the codes to the Taxonomy "_TEMP_". The codes that could not be added are:")
- .D BMES^XPDUTL(.ERROR)
- .H 1
- S TAXNAME=$P($G(^PXD(811.2,TAX,0)),U)
- D BMES^XPDUTL("Taxonomy "_TAXNAME_" created") H 1
- I ISFNDFLD=1 D Q
- .S FDA(801.41,IENS,15)="TX.`"_TAX
- .S FDA(801.41,IENS,123)="NO PICK LIST"
- S FINDS=$O(FDA(801.4118,""),-1)
- S LAST=$O(FDA(801.44,""),-1) I LAST="" Q
- S TEMP=$P($P(LAST,"+",2),",")+1,TEMP="+"_TEMP
- S FDA(801.4118,ADDIENS,.01)="TX.`"_TAX
- Q
- ;
- TAXCONV1(FDA,IENS,FINDING) ;
- N CNT,CPTSTATUS,DEFAULT,DNUM,ENC,ENCTYPE,IEN,NODE,NODECNT
- N PROMPTS,POVSTATUS,START,TAX,TEXT,TAXIEN,TDX,TPR,TYPE,VALUE,X
- ;if taxonomy fields defined then quit
- I ($G(FDA(801.41,IENS,123))'="") Q
- ;if group set to not display a pick list.
- I FDA(801.41,IENS,4)["group" S FDA(801.41,IENS,123)="N" Q
- S TAX=$P(FINDING,".",2)
- S FDA(801.41,IENS,123)="ALL"
- ;
- S TAXIEN=$O(^PXD(811.2,"B",TAX,"")) I TAXIEN'>0 Q
- ;determine Taxonomy Type
- S TDX=$$TOK^PXRMDTAX(TAXIEN,"POV")
- S TPR=$$TOK^PXRMDTAX(TAXIEN,"CPT")
- D SETWARN(.TEXT)
- ;build default array for taxonomy
- S CPTSTATUS=$$GETSTAT^PXRMDTAX("CPT"),POVSTATUS=$$GETSTAT^PXRMDTAX("POV")
- I TDX=1 D GETTAXDF^PXRMDTAX(.DEFAULT,"POV",$S(POVSTATUS=2:1,1:0))
- I TPR=1 D GETTAXDF^PXRMDTAX(.DEFAULT,"CPT",$S(CPTSTATUS=2:1,1:0))
- I TDX,TPR D
- .I CPTSTATUS=POVSTATUS,POVSTATUS=2 S FDA(801.41,IENS,13)="2" Q
- .S FDA(801.41,IENS,13)="@"
- .I CPTSTATUS=0!(POVSTATUS=0) D BMES^XPDUTL(.TEXT)
- I TDX,TPR=0 D
- .I POVSTATUS=2 S FDA(801.41,IENS,13)="2" Q
- .S FDA(801.41,IENS,13)="@" I POVSTATUS=0 D BMES^XPDUTL(.TEXT)
- I TDX=0,TPR=1 D
- .I CPTSTATUS=2 S FDA(801.41,IENS,13)="2" Q
- .S FDA(801.41,IENS,13)="@" I CPTSTATUS=0 D BMES^XPDUTL(.TEXT)
- S NODECNT=$O(FDA(801.44,""),-1) I NODECNT="" Q
- ;
- ;build encounter tax field
- F TYPE="POV","CPT" D
- .I TYPE="POV",TDX=0 Q
- .I TYPE="CPT",TPR=0 Q
- .I TYPE="POV" S X=141
- .I TYPE="CPT" S X=142
- .S VALUE=$$ADDTAXF1^PXRMDTAX(TYPE,.DEFAULT)
- .S FDA(801.41,IENS,X)=VALUE
- .;
- .;build prompt array from default list
- .S TYPE="" F S TYPE=$O(DEFAULT(TYPE)) Q:TYPE="" D
- ..;I TPR=0,CODE="CPT" Q
- ..;I TDX=0,CODE="POV" Q
- ..S CNT=0 F S CNT=$O(DEFAULT(TYPE,"ADDFIND",CNT)) Q:CNT'>0 D
- ...S NODE=DEFAULT(TYPE,"ADDFIND",CNT),IEN=$P(NODE,U)
- ...I $D(PROMPTS(IEN))>0 I $L(PROMPTS(IEN),U)<$L(NODE,U) S PROMPTS(IEN)=NODE
- ...S PROMPTS(IEN)=NODE
- ;
- I $G(FDA(801.41,IENS,122))="YES" K FDA(801.41,IENS,122) Q
- I $D(FDA(801.412)) Q
- ;
- ;add prompts to the dialog element.
- S START=0,IEN=0,CNT=0,DNUM=0
- S IEN=0,CNT=0 F S IEN=$O(PROMPTS(IEN)) Q:IEN'>0 D
- .S START=START+1,DNUM=DNUM+1
- .S NAME=$P($G(^PXRMD(801.41,IEN,0)),U)
- .S NODE=PROMPTS(IEN),CNT=$L(NODE,U)
- .I $P(NODE,U,3)>0 Q
- .S NODECNT=NODECNT+1
- .S FDA(801.412,"+"_NODECNT_","_IENS,.01)=START
- .S FDA(801.412,"+"_NODECNT_","_IENS,2)="`"_IEN
- .I CNT=1 Q
- .F NUM=2:1:CNT D
- ..S VALUE=$P(NODE,U,NUM) I $G(VALUE)="" Q
- ..S FIELD=$S(NUM=2:9,NUM=4:.01,NUM=5:6,NUM=6:7,NUM=7:8,1:"") I $G(FIELD)="" Q
- ..I FIELD>6 S VALUE=$S(VALUE=1:"YES",1:"NO")
- ..S FDA(801.412,"+"_NODECNT_","_IENS,FIELD)=VALUE
- Q
- ;
- ;===============================================
- TIURPL(SRCH,WP,NAMEGHC,FILENUM) ;Replace TIU templates whose names have
- ;changed.
- N IND,RS,TEXT,TS,TYPE
- I FILENUM=8927.1 S TYPE="TIU TEMPLATE"
- E S TYPE="TIU OBJECT"
- S IND=1
- F S TEXT=$G(@WP@(IND)) Q:TEXT="" D
- .I TEXT[SRCH D
- ..S TS=""
- ..F S TS=$O(NAMECHG(FILENUM,TS)) Q:TS="" D
- ...S RS=NAMECHG(FILENUM,TS) Q:TEXT'[TS
- ...S @WP@(IND)=$$STRREP^PXRMUTIL(TEXT,TS,RS)
- ...;Save the replacement information for the history.
- ...S ^TMP("PXRMEXIA",$J,"DIATIU",TYPE,TS)=RS
- ...S ^TMP("PXRMEXIA",$J,"DIATIU",TYPE,TS,DNAM)=""
- .S IND=IND+1
- Q
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPXRMEXU4 13247 printed Feb 18, 2025@23:11:42 Page 2
- PXRMEXU4 ;SLC/PJH,PKR - Reminder Exchange #4, dialog changes. ;Dec 07, 2021@12:24
- +1 ;;2.0;CLINICAL REMINDERS;**6,12,22,26,45,71,65**;Feb 04, 2005;Build 438
- +2 ;
- +3 QUIT
- BLCONV(FDA) ;
- +1 NEW BLIENS,ACT,IEN,IENS,LAST,TERM,SEQ,STATUS,REP
- +2 SET IENS=$ORDER(FDA(801.44,""))
- if IENS=""
- QUIT
- +3 SET IEN=$PIECE(IENS,",",2)_","
- +4 IF $GET(FDA(801.41,IEN,116))=""
- QUIT
- +5 IF $GET(FDA(801.41,IEN,117))=""
- QUIT
- +6 SET TERM="RT."_FDA(801.41,IEN,116)
- +7 SET STATUS=$GET(FDA(801.41,IEN,117))
- +8 SET REP=$SELECT($GET(FDA(801.41,IEN,118))'="":$GET(FDA(801.41,IEN,118)),1:"")
- +9 SET ACT=$SELECT(REP'="":"REPLACE",1:"HIDE")
- +10 KILL FDA(801.41,IEN,116),FDA(801.41,IEN,117),FDA(801.41,IEN,118)
- +11 SET SEQ=1
- +12 SET LAST=$PIECE($PIECE(IENS,"+",2),",")
- +13 SET BLIENS=1+LAST_","_IEN
- +14 SET FDA(801.41143,"+"_BLIENS,.01)=1
- +15 SET FDA(801.41143,"+"_BLIENS,1)=TERM
- +16 SET FDA(801.41143,"+"_BLIENS,2)=STATUS
- +17 SET FDA(801.41143,"+"_BLIENS,3)=ACT
- +18 IF REP'=""
- SET FDA(801.41143,"+"_BLIENS,4)=REP
- +19 QUIT
- +20 ;
- BLDCONV1(FDA) ;
- +1 NEW IENS
- +2 SET IENS=""
- +3 FOR
- SET IENS=$ORDER(FDA(801.41143,IENS))
- if IENS=""
- QUIT
- Begin DoDot:1
- +4 IF $PIECE(FDA(801.41143,IENS,1),".")="TM"
- Begin DoDot:2
- +5 SET FDA(801.41143,IENS,1)="RT."_$PIECE(FDA(801.41143,IENS,1),".",2)
- End DoDot:2
- End DoDot:1
- +6 QUIT
- +7 ;
- VIMMCONV(FDA,IENS,HASSKT,HASIMM) ;
- +1 IF HASSKT=0
- IF HASIMM=0
- QUIT
- +2 NEW FIND,FINDINGS,TFINDS
- +3 IF HASSKT
- IF HASIMM
- SET FDA(801.41,IENS,3)="DISABLE AND SEND MESSAGE"
- +4 SET FIND=$GET(FDA(801.41,IENS,15))
- +5 IF FIND'["ST."
- IF FIND'["IM."
- KILL FDA(801.41,IENS,15)
- +6 ;loop through additional findings
- +7 SET FIND=""
- FOR
- SET FIND=$ORDER(FDA(801.4118,FIND))
- if FIND=""
- QUIT
- Begin DoDot:1
- +8 SET FINDINGS=$GET(FDA(801.4118,FIND,.01))
- +9 IF FINDINGS["ST."!(FINDINGS["IM.")!(FINDINGS["TX.")
- QUIT
- +10 SET TFINDS(FIND)=""
- +11 ;kill off additional findings that are codes
- End DoDot:1
- +12 SET FIND=""
- FOR
- SET FIND=$ORDER(TFINDS(FIND))
- if FIND=""
- QUIT
- Begin DoDot:1
- +13 KILL FDA(801.4118,FIND)
- End DoDot:1
- +14 QUIT
- +15 ;
- +16 ;===============================================
- DLG(FDA,NAMECHG) ;Check the dialog for renamed entries, called by
- +1 ;silent installer. KIDSDONE is newed in INSDLG^PXRMEXSI.
- +2 NEW ABBR,ACTION,ALIST,DNAM,HASIMM,HASSKT,IEN,IENS,ISACT,FILENUM,FINDING,NEWNAM,OFINDING
- +3 NEW RESULT,RRG,SRC,TEMP,TEXT,TIENS,TYPE,WP
- +4 ;
- +5 SET HASIMM=0
- SET HASSKT=0
- +6 ;
- +7 SET IENS=$ORDER(FDA(801.41,""))
- +8 ;Definition .01
- +9 SET (PT01,DNAM)=FDA(801.41,IENS,.01)
- +10 IF $DATA(NAMECHG(801.41,PT01))
- Begin DoDot:1
- +11 SET (FDA(801.41,IENS,.01),DNAM)=NAMECHG(801.41,PT01)
- End DoDot:1
- +12 ;
- +13 ;Build list of finding types
- +14 DO BLDALIST^PXRMVPTR(801.4118,.01,.ALIST)
- +15 ;Plus field 15 files
- +16 SET ALIST("MH")=601.71
- SET ALIST("TX")=811.2
- +17 SET ALIST("WH")=790.404
- +18 ;Plus field 17 file
- +19 SET ALIST("OI")=101.43
- +20 ;
- +21 ;Process SOURCE REMINDER
- +22 SET SRC=$GET(FDA(801.41,IENS,2))
- +23 IF SRC]""
- Begin DoDot:1
- +24 SET IEN=$$EXISTS^PXRMEXIU(811.9,SRC)
- +25 IF IEN=0
- KILL FDA(801.41,IENS,2)
- End DoDot:1
- +26 ;
- +27 ;Clear RESULT if not defined
- +28 SET RESULT=$GET(FDA(801.41,IENS,55))
- +29 IF RESULT]""
- Begin DoDot:1
- +30 SET IEN=$$EXISTS^PXRMEXIU(801.41,RESULT)
- +31 IF IEN=0
- KILL FDA(801.41,IENS,55)
- End DoDot:1
- +32 ;
- +33 FOR TYPE="OI","FI","AF","DC","RG"
- Begin DoDot:1
- +34 NEW FIELD,NUM
- +35 IF TYPE="OI"
- SET FIELD=17
- SET NUM=801.41
- +36 IF TYPE="FI"
- SET FIELD=15
- SET NUM=801.41
- +37 IF TYPE="AF"
- SET FIELD=.01
- SET NUM=801.4118
- +38 IF TYPE="DC"
- SET FIELD=2
- SET NUM=801.412
- +39 IF TYPE="RG"
- SET FIELD=.01
- SET NUM=801.41121
- +40 IF TYPE="FI"
- DO TAXCONV(.FDA,IENS)
- +41 IF NUM=801.4118!(NUM=801.412)!(NUM=801.41121)
- Begin DoDot:2
- +42 SET TIENS=""
- SET ACTION=""
- FOR
- SET TIENS=$ORDER(FDA(NUM,TIENS))
- if TIENS=""!(PXRMDONE=1)
- QUIT
- Begin DoDot:3
- +43 IF (TYPE="AF")
- DO FINDINGS(TIENS,NUM,FIELD,TYPE,.NAMECHG,.ACTION,.FDA,.PXRMDONE)
- +44 IF FDA(NUM,TIENS,.01)["ST."
- SET HASSKT=1
- QUIT
- +45 IF FDA(NUM,TIENS,.01)["IM."
- SET HASIMM=1
- +46 IF TYPE'="AF"
- DO COMPS(TIENS,NUM,FIELD,TYPE,.NAMECHG,.ACTION,.FDA,.PXRMDONE)
- End DoDot:3
- End DoDot:2
- +47 IF NUM=801.41
- Begin DoDot:2
- +48 DO FINDINGS(IENS,NUM,FIELD,TYPE,.NAMECHG,.ACTION,.FDA,.PXRMDONE)
- +49 IF $GET(FDA(NUM,IENS,15))["ST."
- SET HASSKT=1
- +50 IF $GET(FDA(NUM,IENS,15))["IM."
- SET HASIMM=1
- End DoDot:2
- End DoDot:1
- if +$GET(PXRMDONE)=1
- QUIT
- +51 ;
- +52 ;Look for replacements of TIU templates.
- +53 IF $DATA(NAMECHG(8927.1))
- Begin DoDot:1
- +54 SET WP=$GET(FDA(801.41,IENS,25))
- +55 IF WP'=""
- DO TIURPL("{FLD:",WP,.NAMECHG,8927.1)
- +56 SET WP=$GET(FDA(801.41,IENS,35))
- End DoDot:1
- +57 ;
- +58 DO BLCONV(.FDA)
- +59 IF $DATA(FDA(801.41143))
- DO BLDCONV1(.FDA)
- +60 DO VIMMCONV(.FDA,IENS,HASSKT,HASIMM)
- +61 QUIT
- +62 ;
- +63 ;===============================================
- +64 ;Convert ICD9 codes to `ien format
- ICD9(CODE) ;
- +1 NEW IEN
- +2 SET IEN=$$FIND1^DIC(80,"","AMX",$PIECE(CODE,".",2,99))
- +3 IF 'IEN
- QUIT ""
- +4 QUIT IEN
- +5 ;
- +6 ;
- COMPS(IENS,NUM,FIELD,TYPE,NAMECHG,ACTION,FDA,PXRMDONE) ;
- +1 NEW FILENUM,IEN,NAMECHG,NEWNAME,PT01,TEXT
- +2 FOR
- SET IENS=$ORDER(FDA(NUM,IENS))
- if IENS=""
- QUIT
- Begin DoDot:1
- +3 SET PT01=$GET(FDA(NUM,IENS,FIELD))
- if PT01=""
- QUIT
- +4 SET FILENUM=801.41
- SET NEWNAM=$GET(NAMECHG(FILENUM,PT01))
- +5 IF NEWNAM'=""
- Begin DoDot:2
- +6 SET FDA(NUM,IENS,2)=NEWNAM
- SET PT01=NEWNAM
- End DoDot:2
- +7 SET IEN=$$EXISTS^PXRMEXIU(FILENUM,PT01)
- +8 IF IEN=0
- Begin DoDot:2
- +9 ;Get replacement
- +10 NEW DIC,DIR,DUOUT,MSG,X,Y
- +11 SET MSG(1)=" "
- +12 SET MSG(2)=$SELECT(TYPE="RG":"RESULT GROUP",1:"COMPONENT DIALOG")_" entry "_PT01_" does not exist."
- +13 DO MES^XPDUTL(.MSG)
- +14 SET ACTION=$$GETACT^PXRMEXIU("DPQ",.DIR)
- +15 IF ACTION="S"
- SET ACTION="Q"
- +16 IF ACTION="Q"
- QUIT
- +17 IF ACTION="D"
- KILL FDA(NUM,IENS)
- QUIT
- +18 SET DIC=FILENUM
- +19 SET DIC(0)="AEMNQ"
- +20 SET DIC("S")="I ""S""[$P(^PXRMD(801.41,Y,0),U,4)"
- +21 SET Y=-1
- +22 FOR
- if +Y'=-1
- QUIT
- Begin DoDot:3
- +23 ;If this is being called during a KIDS install we need echoing on.
- +24 IF $DATA(XPDNM)
- XECUTE ^%ZOSF("EON")
- +25 DO ^DIC
- +26 IF $DATA(XPDNM)
- XECUTE ^%ZOSF("EOFF")
- +27 IF $DATA(DUOUT)
- SET Y=""
- QUIT
- +28 IF Y=-1
- DO BMES^XPDUTL("You must input a replacement!")
- End DoDot:3
- +29 IF Y=""
- SET ACTION="Q"
- QUIT
- +30 IF Y'=""
- SET FDA(NUM,IENS,.01)=$PIECE(Y,U,2)
- End DoDot:2
- End DoDot:1
- IF ACTION="Q"
- KILL FDA
- SET PXRMDONE=1
- QUIT
- +31 QUIT
- +32 ;
- FINDINGS(IENS,NUM,FIELD,TYPE,NAMECHG,ACTION,FDA,PXRMDONE) ;
- +1 NEW ABBR,FILENUM,ITEM,IEN,NAMECHG,ORIG,SET,TEXT
- +2 SET (ITEM,ORIG)=$GET(FDA(NUM,IENS,FIELD))
- SET ACTION=""
- +3 IF ITEM'=""
- Begin DoDot:1
- +4 SET TEXT=""
- +5 SET ABBR=$SELECT(TYPE="OI":"OI",1:$PIECE(ITEM,".",1))
- +6 SET PT01=$SELECT(TYPE="OI":ITEM,1:$PIECE(ITEM,".",2))
- +7 SET FILENUM=$PIECE(ALIST(ABBR),U)
- +8 IF $DATA(NAMECHG(FILENUM,PT01))
- Begin DoDot:2
- +9 SET ITEM=$SELECT(TYPE="OI":NAMECHG(FILENUM,PT01),1:ABBR_"."_NAMECHG(FILENUM,PT01))
- +10 SET FDA(NUM,IENS,FIELD)=ITEM
- End DoDot:2
- +11 SET IEN=$SELECT(TYPE="OI":+$$VFIND1^PXRMEXIU(ABBR_"."_ITEM,.ALIST),1:+$$VFIND1^PXRMEXIU(ITEM,.ALIST))
- +12 IF IEN>0
- SET TEMP=$$VDLGFIND^PXRMEXIU(ABBR,IEN,.ALIST)
- IF TEMP<1
- Begin DoDot:2
- +13 SET IEN=0
- +14 SET TEXT=$SELECT(TYPE="OI":"ORDERABLE ITEM",TYPE="AF":"ADDITIONAL FINDING",1:"FINDING")_" entry "_ITEM_" "_$SELECT(TEMP=0:"is inactive.",1:" does not have codes marked to be used in a dialog.")
- End DoDot:2
- +15 IF IEN>0
- SET FDA(NUM,IENS,FIELD)=$SELECT(TYPE="OI":"`"_IEN,1:ABBR_".`"_IEN)
- +16 IF IEN=0
- Begin DoDot:2
- +17 SET SET=0
- +18 ;I $D(^TMP($J,"PXRM FINDING REPLACE",NUM,FIELD,ORIG)) D
- +19 ;.S ITEM=$G(^TMP($J,"PXRM FINDING REPLACE",NUM,FIELD,ORIG)) I ITEM="" Q
- +20 IF $DATA(^TMP($JOB,"PXRM FINDING REPLACE",ORIG))
- Begin DoDot:3
- +21 SET ITEM=$GET(^TMP($JOB,"PXRM FINDING REPLACE",ORIG))
- IF ITEM=""
- QUIT
- +22 SET FDA(NUM,IENS,FIELD)=ITEM
- SET SET=1
- End DoDot:3
- +23 IF SET=1
- QUIT
- +24 IF TEXT=""
- SET TEXT=$SELECT(TYPE="OI":"ORDERABLE ITEM",TYPE="AF":"ADDITIONAL FINDING",1:"FINDING")_" entry "_ITEM_" does not exist."
- +25 ;Get replacement
- +26 NEW DIC,DIR,DUOUT,MSG,X,Y
- +27 SET MSG(1)=" "
- +28 SET MSG(2)=TEXT
- +29 DO MES^XPDUTL(.MSG)
- +30 SET ACTION=$$GETACT^PXRMEXIU("DPQ",.DIR)
- IF ACTION="S"
- SET ACTION="Q"
- +31 IF ACTION="Q"
- QUIT
- +32 IF ACTION="D"
- KILL FDA(NUM,IENS,FIELD)
- QUIT
- +33 SET DIC=FILENUM
- +34 SET DIC(0)="AEMNQ"
- +35 SET DIC("S")="I $$FILESCR^PXRMDLG6(Y,FILENUM)=1"
- +36 SET Y=-1
- +37 FOR
- if +Y'=-1
- QUIT
- Begin DoDot:3
- +38 ;If this is being called during a KIDS install we need echoing on.
- +39 IF $DATA(XPDNM)
- XECUTE ^%ZOSF("EON")
- +40 DO ^DIC
- +41 IF $DATA(XPDNM)
- XECUTE ^%ZOSF("EOFF")
- +42 ;If this is being called during a KIDS install we need echoing on.
- +43 IF $DATA(DUOUT)
- SET Y=""
- QUIT
- +44 IF Y=-1
- DO BMES^XPDUTL("You must input a replacement!")
- End DoDot:3
- +45 IF Y=""
- SET ACTION="Q"
- QUIT
- +46 SET ITEM=$SELECT(TYPE="OI":$PIECE(Y,U,2),1:ABBR_"."_$PIECE(Y,U,2))
- +47 SET FDA(NUM,IENS,FIELD)=ITEM
- End DoDot:2
- +48 ;Save the finding information for the history.
- +49 IF ITEM'=ORIG
- Begin DoDot:2
- +50 SET ^TMP("PXRMEXIA",$JOB,"DIAF",$PIECE(IENS,",",1),ORIG)=ITEM
- +51 SET ^TMP($JOB,"PXRM FINDING REPLACE",ORIG)=ITEM
- End DoDot:2
- End DoDot:1
- IF ACTION="Q"
- KILL FDA
- SET PXRMDONE=1
- QUIT
- +52 QUIT
- +53 ;
- SETWARN(TEXT) ;
- +1 SET TEXT(1)="PREVIOUSLY THE DIALOG WAS SET TO BOTH CURRENT AND HISTORICAL ENCOUNTERS."
- +2 SET TEXT(2)="DIALOG IS NOW SET TO CURRENT ENCOUNTER ONLY."
- +3 SET TEXT(3)="REVIEW THE DIALOG BEFORE USING IN CPRS."
- +4 QUIT
- +5 ;
- TAXARRAY(FINDING,CNT,ARRAY) ;
- +1 ; add to code list to create a new taxonomy
- +2 NEW CODE,CODESYS,CODESYSN,IEN
- +3 SET CODESYS=$PIECE(FINDING,".")
- SET CODE=$PIECE(FINDING,".",2,99)
- +4 IF $PIECE(CODESYS,".")'["ICD9"
- IF $PIECE(CODESYS,".")'["CPT"
- QUIT
- +5 SET CODESYSN=$SELECT(CODESYS[9:"ICD",1:"CPT")
- +6 SET IEN=$$EXISTS^PXRMEXIU($SELECT(CODESYSN="ICD":80,1:81),CODE)
- +7 SET CNT=CNT+1
- SET ARRAY("CODE",CODESYSN,IEN)="I"_U_1
- +8 QUIT
- +9 ;
- TAXCONV(FDA,IENS) ;
- +1 ; FINDING ITEM FDA(801.41,IENS,15)
- +2 ; ADDITIONAL FINDINGS FDA(801.4118,IENS)
- +3 NEW ADDIENS,ARRAY,CNT,ERROR,FINDING,FINDS,ISFNDFLD,LAST,NAME,OCNT,TAX,TAXNAME,TEMP,TFINDS
- +4 SET ISFNDFLD=0
- SET CNT=0
- +5 ;if finding is taxonomy add the correct fields to the element
- +6 SET FINDING=$GET(FDA(801.41,IENS,15))
- +7 IF $PIECE(FINDING,".")="TX"
- DO TAXCONV1(.FDA,IENS,FINDING)
- QUIT
- +8 ;
- +9 IF FINDING'=""
- Begin DoDot:1
- +10 DO TAXARRAY(FINDING,.CNT,.ARRAY)
- +11 ;if array defined then finding has a code kill the node off.
- +12 IF $DATA(ARRAY)
- SET ISFNDFLD=1
- KILL FDA(801.41,IENS,15)
- End DoDot:1
- +13 ;loop through additional findings
- +14 SET FINDS=""
- FOR
- SET FINDS=$ORDER(FDA(801.4118,FINDS))
- if FINDS=""
- QUIT
- Begin DoDot:1
- +15 SET FINDING=FDA(801.4118,FINDS,.01)
- +16 SET OCNT=CNT
- DO TAXARRAY(FINDING,.CNT,.ARRAY)
- IF CNT>OCNT
- SET TFINDS(FINDS)=""
- End DoDot:1
- +17 ;kill off additional findings that are codes
- +18 SET ADDIENS=""
- +19 SET FINDS=""
- FOR
- SET FINDS=$ORDER(TFINDS(FINDS))
- if FINDS=""
- QUIT
- Begin DoDot:1
- +20 KILL FDA(801.4118,FINDS)
- +21 IF ADDIENS=""
- SET ADDIENS=FINDS
- End DoDot:1
- +22 IF '$DATA(ARRAY)
- QUIT
- +23 ;build values to crate a new taxonomy
- +24 SET NAME=$GET(FDA(801.41,IENS,.01))
- +25 SET TEMP=$$RTAXNAME^PXRMDUTL(NAME)
- +26 SET ARRAY("NAME")=TEMP
- +27 SET ARRAY("COUNT")=CNT
- +28 SET ARRAY("CLASS")=$GET(FDA(801.41,IENS,100))
- +29 SET ARRAY("SOURCE")="Exchange installed of dialog "_NAME
- +30 ;create new taxonomy API
- +31 SET TAX=$$CRETAX^PXRMTXIM("E",.ARRAY,.ERROR)
- +32 IF $DATA(ERROR)
- Begin DoDot:1
- +33 IF $GET(TAX)=0
- DO BMES^XPDUTL("ERROR: Taxonomy could not be created for dialog "_NAME_".")
- HANG 1
- QUIT
- +34 DO BMES^XPDUTL("ERROR: failed to add all the codes to the Taxonomy "_TEMP_". The codes that could not be added are:")
- +35 DO BMES^XPDUTL(.ERROR)
- +36 HANG 1
- End DoDot:1
- QUIT
- +37 SET TAXNAME=$PIECE($GET(^PXD(811.2,TAX,0)),U)
- +38 DO BMES^XPDUTL("Taxonomy "_TAXNAME_" created")
- HANG 1
- +39 IF ISFNDFLD=1
- Begin DoDot:1
- +40 SET FDA(801.41,IENS,15)="TX.`"_TAX
- +41 SET FDA(801.41,IENS,123)="NO PICK LIST"
- End DoDot:1
- QUIT
- +42 SET FINDS=$ORDER(FDA(801.4118,""),-1)
- +43 SET LAST=$ORDER(FDA(801.44,""),-1)
- IF LAST=""
- QUIT
- +44 SET TEMP=$PIECE($PIECE(LAST,"+",2),",")+1
- SET TEMP="+"_TEMP
- +45 SET FDA(801.4118,ADDIENS,.01)="TX.`"_TAX
- +46 QUIT
- +47 ;
- TAXCONV1(FDA,IENS,FINDING) ;
- +1 NEW CNT,CPTSTATUS,DEFAULT,DNUM,ENC,ENCTYPE,IEN,NODE,NODECNT
- +2 NEW PROMPTS,POVSTATUS,START,TAX,TEXT,TAXIEN,TDX,TPR,TYPE,VALUE,X
- +3 ;if taxonomy fields defined then quit
- +4 IF ($GET(FDA(801.41,IENS,123))'="")
- QUIT
- +5 ;if group set to not display a pick list.
- +6 IF FDA(801.41,IENS,4)["group"
- SET FDA(801.41,IENS,123)="N"
- QUIT
- +7 SET TAX=$PIECE(FINDING,".",2)
- +8 SET FDA(801.41,IENS,123)="ALL"
- +9 ;
- +10 SET TAXIEN=$ORDER(^PXD(811.2,"B",TAX,""))
- IF TAXIEN'>0
- QUIT
- +11 ;determine Taxonomy Type
- +12 SET TDX=$$TOK^PXRMDTAX(TAXIEN,"POV")
- +13 SET TPR=$$TOK^PXRMDTAX(TAXIEN,"CPT")
- +14 DO SETWARN(.TEXT)
- +15 ;build default array for taxonomy
- +16 SET CPTSTATUS=$$GETSTAT^PXRMDTAX("CPT")
- SET POVSTATUS=$$GETSTAT^PXRMDTAX("POV")
- +17 IF TDX=1
- DO GETTAXDF^PXRMDTAX(.DEFAULT,"POV",$SELECT(POVSTATUS=2:1,1:0))
- +18 IF TPR=1
- DO GETTAXDF^PXRMDTAX(.DEFAULT,"CPT",$SELECT(CPTSTATUS=2:1,1:0))
- +19 IF TDX
- IF TPR
- Begin DoDot:1
- +20 IF CPTSTATUS=POVSTATUS
- IF POVSTATUS=2
- SET FDA(801.41,IENS,13)="2"
- QUIT
- +21 SET FDA(801.41,IENS,13)="@"
- +22 IF CPTSTATUS=0!(POVSTATUS=0)
- DO BMES^XPDUTL(.TEXT)
- End DoDot:1
- +23 IF TDX
- IF TPR=0
- Begin DoDot:1
- +24 IF POVSTATUS=2
- SET FDA(801.41,IENS,13)="2"
- QUIT
- +25 SET FDA(801.41,IENS,13)="@"
- IF POVSTATUS=0
- DO BMES^XPDUTL(.TEXT)
- End DoDot:1
- +26 IF TDX=0
- IF TPR=1
- Begin DoDot:1
- +27 IF CPTSTATUS=2
- SET FDA(801.41,IENS,13)="2"
- QUIT
- +28 SET FDA(801.41,IENS,13)="@"
- IF CPTSTATUS=0
- DO BMES^XPDUTL(.TEXT)
- End DoDot:1
- +29 SET NODECNT=$ORDER(FDA(801.44,""),-1)
- IF NODECNT=""
- QUIT
- +30 ;
- +31 ;build encounter tax field
- +32 FOR TYPE="POV","CPT"
- Begin DoDot:1
- +33 IF TYPE="POV"
- IF TDX=0
- QUIT
- +34 IF TYPE="CPT"
- IF TPR=0
- QUIT
- +35 IF TYPE="POV"
- SET X=141
- +36 IF TYPE="CPT"
- SET X=142
- +37 SET VALUE=$$ADDTAXF1^PXRMDTAX(TYPE,.DEFAULT)
- +38 SET FDA(801.41,IENS,X)=VALUE
- +39 ;
- +40 ;build prompt array from default list
- +41 SET TYPE=""
- FOR
- SET TYPE=$ORDER(DEFAULT(TYPE))
- if TYPE=""
- QUIT
- Begin DoDot:2
- +42 ;I TPR=0,CODE="CPT" Q
- +43 ;I TDX=0,CODE="POV" Q
- +44 SET CNT=0
- FOR
- SET CNT=$ORDER(DEFAULT(TYPE,"ADDFIND",CNT))
- if CNT'>0
- QUIT
- Begin DoDot:3
- +45 SET NODE=DEFAULT(TYPE,"ADDFIND",CNT)
- SET IEN=$PIECE(NODE,U)
- +46 IF $DATA(PROMPTS(IEN))>0
- IF $LENGTH(PROMPTS(IEN),U)<$LENGTH(NODE,U)
- SET PROMPTS(IEN)=NODE
- +47 SET PROMPTS(IEN)=NODE
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +48 ;
- +49 IF $GET(FDA(801.41,IENS,122))="YES"
- KILL FDA(801.41,IENS,122)
- QUIT
- +50 IF $DATA(FDA(801.412))
- QUIT
- +51 ;
- +52 ;add prompts to the dialog element.
- +53 SET START=0
- SET IEN=0
- SET CNT=0
- SET DNUM=0
- +54 SET IEN=0
- SET CNT=0
- FOR
- SET IEN=$ORDER(PROMPTS(IEN))
- if IEN'>0
- QUIT
- Begin DoDot:1
- +55 SET START=START+1
- SET DNUM=DNUM+1
- +56 SET NAME=$PIECE($GET(^PXRMD(801.41,IEN,0)),U)
- +57 SET NODE=PROMPTS(IEN)
- SET CNT=$LENGTH(NODE,U)
- +58 IF $PIECE(NODE,U,3)>0
- QUIT
- +59 SET NODECNT=NODECNT+1
- +60 SET FDA(801.412,"+"_NODECNT_","_IENS,.01)=START
- +61 SET FDA(801.412,"+"_NODECNT_","_IENS,2)="`"_IEN
- +62 IF CNT=1
- QUIT
- +63 FOR NUM=2:1:CNT
- Begin DoDot:2
- +64 SET VALUE=$PIECE(NODE,U,NUM)
- IF $GET(VALUE)=""
- QUIT
- +65 SET FIELD=$SELECT(NUM=2:9,NUM=4:.01,NUM=5:6,NUM=6:7,NUM=7:8,1:"")
- IF $GET(FIELD)=""
- QUIT
- +66 IF FIELD>6
- SET VALUE=$SELECT(VALUE=1:"YES",1:"NO")
- +67 SET FDA(801.412,"+"_NODECNT_","_IENS,FIELD)=VALUE
- End DoDot:2
- End DoDot:1
- +68 QUIT
- +69 ;
- +70 ;===============================================
- TIURPL(SRCH,WP,NAMEGHC,FILENUM) ;Replace TIU templates whose names have
- +1 ;changed.
- +2 NEW IND,RS,TEXT,TS,TYPE
- +3 IF FILENUM=8927.1
- SET TYPE="TIU TEMPLATE"
- +4 IF '$TEST
- SET TYPE="TIU OBJECT"
- +5 SET IND=1
- +6 FOR
- SET TEXT=$GET(@WP@(IND))
- if TEXT=""
- QUIT
- Begin DoDot:1
- +7 IF TEXT[SRCH
- Begin DoDot:2
- +8 SET TS=""
- +9 FOR
- SET TS=$ORDER(NAMECHG(FILENUM,TS))
- if TS=""
- QUIT
- Begin DoDot:3
- +10 SET RS=NAMECHG(FILENUM,TS)
- if TEXT'[TS
- QUIT
- +11 SET @WP@(IND)=$$STRREP^PXRMUTIL(TEXT,TS,RS)
- +12 ;Save the replacement information for the history.
- +13 SET ^TMP("PXRMEXIA",$JOB,"DIATIU",TYPE,TS)=RS
- +14 SET ^TMP("PXRMEXIA",$JOB,"DIATIU",TYPE,TS,DNAM)=""
- End DoDot:3
- End DoDot:2
- +15 SET IND=IND+1
- End DoDot:1
- +16 QUIT
- +17 ;