125 lines
4.7 KiB
Mathematica
125 lines
4.7 KiB
Mathematica
|
LRPXCHKA ;SLC/STAFF - Lab PXRMINDX Index Validation AP ;3/17/04 15:07
|
||
|
;;5.2;LAB SERVICE;**295**;Sep 27, 1994
|
||
|
;
|
||
|
AP(DFN,LRDFN) ; from LRPXCHK
|
||
|
N DATE,LRIDT,SUB,ZERO
|
||
|
F SUB="CY","EM","SP" D
|
||
|
. S LRIDT=0
|
||
|
. F S LRIDT=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT)) Q:LRIDT<1 D
|
||
|
.. S ZERO=$G(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,0))
|
||
|
.. S DATE=$$LRIDT^LRPXAPIU(LRIDT) I 'DATE Q
|
||
|
.. I '$P(ZERO,U,3) Q
|
||
|
.. I '$P(ZERO,U,11) Q
|
||
|
.. D CYEMSP(LRDFN,DFN,LRIDT,DATE,SUB) ; cyto, electron micro, surg path
|
||
|
I $D(^TMP("LRPXCHK",$J,"LR",LRDFN,"AU")) D AUTOPSY(DFN,LRDFN)
|
||
|
Q
|
||
|
;
|
||
|
AUTOPSY(DFN,LRDFN) ;
|
||
|
N DATE,ETIOL,I,II,III,ICD,ICDX,ITEM,NODE,ORGAN,SNOMED,SPEC,SUB,SUBS
|
||
|
I '($P(^TMP("LRPXCHK",$J,"LR",LRDFN,"AU"),U,3)&($P(^("AU"),U,15))) Q
|
||
|
S DATE=$$DOD^LRPXAPIU(DFN) I 'DATE Q
|
||
|
S SPEC=0
|
||
|
F S SPEC=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,33,SPEC)) Q:SPEC<1 D
|
||
|
. I '$L($P($G(^TMP("LRPXCHK",$J,"LR",LRDFN,33,SPEC,0)),U)) Q
|
||
|
. S ITEM="A;S;1."_$$UP^XLFSTR($P(^TMP("LRPXCHK",$J,"LR",LRDFN,33,SPEC,0),U))
|
||
|
. S NODE=LRDFN_";33;"_SPEC_";0"
|
||
|
. D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
S ICD=0
|
||
|
F S ICD=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,80,ICD)) Q:ICD<1 D
|
||
|
. S ICDX=+$G(^TMP("LRPXCHK",$J,"LR",LRDFN,80,ICD,0))
|
||
|
. I 'ICDX Q
|
||
|
. S ITEM="A;I;"_ICDX
|
||
|
. S NODE=LRDFN_";80;"_ICD_";0"
|
||
|
. D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
S I=0
|
||
|
F S I=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,"AY",I)) Q:I<1 D
|
||
|
. S ORGAN=+$G(^TMP("LRPXCHK",$J,"LR",LRDFN,"AY",I,0))
|
||
|
. I 'ORGAN Q
|
||
|
. S ITEM="A;O;"_ORGAN
|
||
|
. S NODE=LRDFN_";AY;"_I_";0"
|
||
|
. D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
. F SUBS="1D","2M","3F","4P" D
|
||
|
.. S SUB=+SUBS
|
||
|
.. S II=0
|
||
|
.. F S II=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,"AY",I,SUB,II)) Q:II<1 D
|
||
|
... S SNOMED=+$G(^TMP("LRPXCHK",$J,"LR",LRDFN,"AY",I,SUB,II,0))
|
||
|
... I 'SNOMED Q
|
||
|
... S ITEM="A;"_$E(SUBS,2)_";"_SNOMED
|
||
|
... S NODE=LRDFN_";AY;"_I_";"_SUB_";"_II_";0"
|
||
|
... D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
... I SUB'=2 Q
|
||
|
... S III=0
|
||
|
... F S III=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,"AY",I,SUB,II,1,III)) Q:III<1 D
|
||
|
.... S ETIOL=+$G(^TMP("LRPXCHK",$J,"LR",LRDFN,"AY",I,SUB,II,1,III,0))
|
||
|
.... I 'ETIOL Q
|
||
|
.... S ITEM="A;E;"_ETIOL
|
||
|
.... S NODE=LRDFN_";AY;"_I_";"_SUB_";"_II_";1;"_III_";0"
|
||
|
.... D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
Q
|
||
|
;
|
||
|
CYEMSP(LRDFN,DFN,LRIDT,DATE,SUB) ;
|
||
|
N ACC,I,ICD,ICDX,ITEM,NODE,ORGAN,PREP,SPEC,TEST,TESTS K TESTS
|
||
|
I '$D(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,0)) Q
|
||
|
S SPEC=0
|
||
|
F S SPEC=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,.1,SPEC)) Q:SPEC<1 D
|
||
|
. I '$L($P($G(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,.1,SPEC,0)),U)) Q
|
||
|
. S ITEM="A;S;1."_$$UP^XLFSTR($P(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,.1,SPEC,0),U))
|
||
|
. S NODE=LRDFN_";"_SUB_";"_LRIDT_";.1;"_SPEC_";0"
|
||
|
. D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
. S PREP=0
|
||
|
. F S PREP=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,.1,SPEC,1,PREP)) Q:PREP<1 D
|
||
|
.. S TEST=0
|
||
|
.. F S TEST=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,.1,SPEC,1,PREP,1,TEST)) Q:TEST<1 D
|
||
|
... S TEST=+$G(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,.1,SPEC,1,PREP,1,TEST,0))
|
||
|
... I 'TEST Q
|
||
|
... S ITEM="A;T;"_TEST
|
||
|
... S NODE=LRDFN_";"_SUB_";"_LRIDT_";.1;"_SPEC_";1;"_PREP_";1;"_TEST_";0"
|
||
|
... D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
; S ACC=$P(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,0),U,6) ; do not use tests on acc
|
||
|
; I $L(ACC) D
|
||
|
; . S NODE=LRDFN_";"_SUB_";"_LRIDT_";0"
|
||
|
; . D ACCY^LRPXAPI(.TESTS,ACC,DATE)
|
||
|
; . I $O(TESTS(0)) D
|
||
|
; .. S TEST=0
|
||
|
; .. F S TEST=+$O(TESTS(TEST)) Q:TEST<1 D
|
||
|
; ... S ITEM="A;T;"_TEST
|
||
|
; ... D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
S ICD=0
|
||
|
F S ICD=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,3,ICD)) Q:ICD<1 D
|
||
|
. S ICDX=+$G(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,3,ICD,0))
|
||
|
. I 'ICDX Q
|
||
|
. S ITEM="A;I;"_ICDX
|
||
|
. S NODE=LRDFN_";"_SUB_";"_LRIDT_";3;"_ICD_";0"
|
||
|
. D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
S I=0
|
||
|
F S I=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,2,I)) Q:I<1 D
|
||
|
. S ORGAN=+$G(^TMP("LRPXCHK",$J,"LR",LRDFN,SUB,LRIDT,2,I,0))
|
||
|
. I 'ORGAN Q
|
||
|
. S ITEM="A;O;"_ORGAN
|
||
|
. S NODE=LRDFN_";"_SUB_";"_LRIDT_";2;"_I_";0"
|
||
|
. D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
. D SNOMED(LRDFN,LRIDT,SUB,I)
|
||
|
Q
|
||
|
;
|
||
|
SNOMED(LRDFN,LRIDT,APSUB,I) ;
|
||
|
N ETIOL,II,III,ITEM,NODE,SNOMED,SUB,SUBS
|
||
|
F SUBS="1D","2M","3F","4P" D
|
||
|
. S SUB=+SUBS
|
||
|
. S II=0
|
||
|
. F S II=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,APSUB,LRIDT,2,I,SUB,II)) Q:II<1 D
|
||
|
.. S SNOMED=+$G(^TMP("LRPXCHK",$J,"LR",LRDFN,APSUB,LRIDT,2,I,SUB,II,0))
|
||
|
.. I 'SNOMED Q
|
||
|
.. S ITEM="A;"_$E(SUBS,2)_";"_SNOMED
|
||
|
.. S NODE=LRDFN_";"_APSUB_";"_LRIDT_";2;"_I_";"_SUB_";"_II_";0"
|
||
|
.. D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
.. I SUB'=2 Q
|
||
|
.. S III=0
|
||
|
.. F S III=$O(^TMP("LRPXCHK",$J,"LR",LRDFN,APSUB,LRIDT,2,I,SUB,II,1,III)) Q:III<1 D
|
||
|
... S ETIOL=+$G(^TMP("LRPXCHK",$J,"LR",LRDFN,APSUB,LRIDT,2,I,SUB,II,1,III,0))
|
||
|
... I 'ETIOL Q
|
||
|
... S ITEM="A;E;"_ETIOL
|
||
|
... S NODE=LRDFN_";"_APSUB_";"_LRIDT_";2;"_I_";"_SUB_";"_II_";1;"_III_";0"
|
||
|
... D TMPCHK^LRPXCHK(DFN,DATE,ITEM,NODE)
|
||
|
Q
|
||
|
;
|