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

LEXQC2.m

Go to the documentation of this file.
  1. LEXQC2 ;ISL/KER - Query - Changes - Save ;04/21/2014
  1. ;;2.0;LEXICON UTILITY;**62,80**;Sep 23, 1996;Build 10
  1. ;
  1. ; Global Variables
  1. ; ^TMP("LEXQC") SACC 2.3.2.5.1
  1. ; ^TMP("LEXQCO") SACC 2.3.2.5.1
  1. ;
  1. ; External References
  1. ; None
  1. ;
  1. ; Local Variables NEWed in LEXQC
  1. ; LEXCDT Versioning Date
  1. ;
  1. EN ; Code Set Changes Main Entry Point
  1. Q:'$D(^TMP("LEXQC",$J)) N LEXTC S LEXTC=$$TC Q:+LEXTC'>0
  1. Q:$G(LEXCDT)'?7N N LEXSID,LEXT S LEXT=" "_LEXTC_" Code Set change"
  1. S:+LEXTC>1!(LEXTC<1) LEXT=LEXT_"s"
  1. S LEXT=LEXT_" found for "_$$SD^LEXQM($G(LEXCDT)) D BL,TL(LEXT)
  1. F LEXSID="ICD","ICC","ICP","10D","10P","CPT","CPC","MOD","RAN" D SRC
  1. Q
  1. SRC ; By Source - ICD/ICC/ICP/10D/10P/CPT/CPC/MOD/RAN
  1. Q:"^ICD^ICC^10D^10P^ICP^CPT^CPC^MOD^RAN^"'[("^"_$G(LEXSID)_"^")
  1. Q:'$D(^TMP("LEXQC",$J,LEXSID)) N LEXCHG S LEXCHG=""
  1. F S LEXCHG=$O(^TMP("LEXQC",$J,LEXSID,LEXCHG)) Q:'$L(LEXCHG) D CHG
  1. Q
  1. CHG ; By Change - ACT/INA/REV/REU/REA
  1. Q:"^ICD^ICP^10D^10P^CPT^CPC^MOD^RAN^"'[("^"_$G(LEXSID)_"^")
  1. Q:'$L($G(LEXCHG)) N LEXCNAM,LEXSCT,LEXSNAM S LEXSNAM=""
  1. S LEXSNAM=$$NAM(LEXSID) Q:'$L($G(LEXSNAM)) S LEXCNAM=$$CHT(LEXCHG)
  1. Q:'$L(LEXCNAM) S LEXSCT=+($G(^TMP("LEXQC",$J,LEXSID,LEXCHG,0)))
  1. Q:LEXSCT'>0 S:LEXSCT>1 LEXSNAM=LEXSNAM_"s" S LEXT=LEXSNAM_" "_LEXCNAM
  1. S LEXT=LEXT_$J(" ",(67-$L(LEXT)))_$J(LEXSCT,5) D BL,TL((" "_LEXT))
  1. D LST
  1. Q
  1. LST ; List Codes
  1. Q:'$L($G(LEXSID)) Q:'$L($G(LEXCHG))
  1. Q:'$D(^TMP("LEXQC",$J,LEXSID,LEXCHG,1))
  1. N LEXS,LEXSC,LEXSO,LEXSOE,LEXLC,LEXSTR,LEXMAX,LEXLEN
  1. S LEXLEN=8 S:LEXSID="10D"!(LEXSID="10P") LEXLEN=10
  1. S (LEXLC,LEXSC)=0,(LEXS,LEXSTR)="",LEXMAX=10 S:LEXLEN=10 LEXMAX=8
  1. F S LEXS=$O(^TMP("LEXQC",$J,LEXSID,LEXCHG,1,LEXS)) Q:'$L(LEXS) D
  1. . N LEXN S LEXN=$G(^TMP("LEXQC",$J,LEXSID,LEXCHG,1,LEXS))
  1. . S LEXSO=$$TM^LEXQM($P(LEXN,"^",2)) Q:'$L(LEXSO)
  1. . S LEXSOE=$$FM(LEXSO,LEXLEN) S LEXSC=LEXSC+1
  1. . I LEXSC<LEXMAX S LEXSTR=LEXSTR_LEXSOE Q
  1. . I LEXSC'<LEXMAX D Q
  1. . . S LEXSTR=$$TM^LEXQM(LEXSTR)
  1. . . S LEXLC=+LEXLC+1 D:LEXLC=1 BL D TL((" "_LEXSTR))
  1. . . S LEXSC=1,LEXSTR=LEXSOE Q
  1. S LEXSTR=$$TM^LEXQM(LEXSTR)
  1. I $L(LEXSTR) S LEXLC=+LEXLC+1 D:LEXLC=1 BL D TL((" "_LEXSTR))
  1. Q
  1. ;
  1. ; Miscellaneous
  1. FM(X,Y) ; Format
  1. S X=$G(X),Y=+($G(Y)) Q:+Y'>0 X S X=X_$J(" ",(Y-$L(X)))
  1. Q X
  1. BL ; Blank Line
  1. D TL(" ") Q
  1. TL(X) ; Text Line
  1. N LEXI S LEXI=+($O(^TMP("LEXQCO",$J," "),-1))+1
  1. S ^TMP("LEXQCO",$J,LEXI)=$G(X),^TMP("LEXQCO",$J,0)=LEXI
  1. Q
  1. TC(X) ; Total Changes Found
  1. N LEXNN,LEXNC,LEXT S LEXT=0 S LEXNN="^TMP(""LEXQC"","_$J_")"
  1. S LEXNC="^TMP(""LEXQC"","_$J_","
  1. F S LEXNN=$Q(@LEXNN) Q:'$L(LEXNN)!(LEXNN'[LEXNC) D
  1. . I LEXNN[",0)" S LEXT=LEXT+($G(@LEXNN))
  1. S X=LEXT
  1. Q X
  1. SH ; Show Temp Global
  1. N NN,NC W !! S NN="^TMP(""LEXQC"","_$J_")",NC="^TMP(""LEXQC"","_$J_","
  1. F S NN=$Q(@NN) Q:'$L(NN)!(NN'[NC) W !,NN,"=",@NN
  1. Q
  1. NAM(X) ; Source Name
  1. Q:$G(X)="ICD" "ICD-9 Diagnosis Code"
  1. Q:$G(X)="ICP" "ICD-9 Procedure Code"
  1. Q:$G(X)="ICC" "ICD Complication/Comorbidity (CC) Flag"
  1. Q:$G(X)="10D" "ICD-10 Diagnosis Code"
  1. Q:$G(X)="10P" "ICD-10 Procedure Code"
  1. Q:$G(X)="CPT" "CPT-4 Procedure Code"
  1. Q:$G(X)="CPC" "HCPCS Procedure Code"
  1. Q:$G(X)="MOD" "CPT Modifier Code"
  1. Q:$G(X)="RAN" "CPT Modifier Range"
  1. Q ""
  1. CHT(X) ; Change Text
  1. Q:$G(X)="ACT" "Added"
  1. Q:$G(X)="INA" "Inactivated"
  1. Q:$G(X)="REV" "Revised"
  1. Q:$G(X)="UPD" "Updated"
  1. Q:$G(X)="REU" "Re-used"
  1. Q:$G(X)="REA" "Re-Activated"
  1. Q ""