Code |
N FILTER,PSFIL S (FILTER,PSFIL)="" S:+$G(ORDT)'>0 ORDT=DT S ORX=$$UP^XLFSTR(ORX) I ORX[" NOT " D . N I,XNOT,XCT,X1,X2,FIL . S XCT=$L(ORX," NOT ") . F I=2:1:XCT S XNOT=$P(ORX," NOT ",I) Q:$L(XNOT)=0 D .. S FILTER=FILTER_"I $$UP^XLFSTR(^LEX(757.01,+Y,0))'["""_XNOT_""" " .. S PSFIL=PSFIL_"I $$UP^XLFSTR(ORTXT)'["""_XNOT_""" " . I $E(FILTER,$L(FILTER))=" " S FILTER=$E(FILTER,1,$L(FILTER)-1) . I $E(PSFIL,$L(PSFIL))=" " S PSFIL=$E(PSFIL,1,$L(PSFIL)-1) . S XCT=$L(ORX," ") . F I=1:1:XCT S X1=$P(ORX," ",I) D .. I X1'="NOT" S X2=$G(X2)_X1_" " Q .. I X1="NOT" S I=I+1 . S ORX=X2 . S FIL=$G(^TMP("LEXSCH",$J,"FIL",0)) I FIL'="" S FILTER=FIL_" "_FILTER . S ^TMP("LEXSCH",$J,"FIL",0)=FILTER I ORX[" OR " D Q . N XCT,XCT1,XN,XN1 . S ^TMP($J,"ORWLEX","STEXT")=ORX . S XCT1=$L(ORX," OR ") . F XN=1:1:XCT1 S ORX=$P(^TMP($J,"ORWLEX","STEXT")," OR ") Q:$L(ORX)=0 S ^("STEXT")=$P(^TMP($J,"ORWLEX","STEXT")," OR ",2,XCT1) D .. D SEARCH(.ORY,ORX,ORDT,FILTER,PSFIL) .. M ^TMP($J,"ORWLEX","STEXT",XN)=ORY .. K ORY . S (XN,XCT)=0 . F S XN=$O(^TMP($J,"ORWLEX","STEXT",XN)) Q:+XN'>0 D .. S XN1=0 .. F S XN1=$O(^TMP($J,"ORWLEX","STEXT",XN,XN1)) Q:+XN1'>0 S XCT=XCT+1,ORY(XCT)=^(XN1) . K ^TMP($J,"ORWLEX","STEXT") D SEARCH(.ORY,ORX,ORDT,FILTER,PSFIL)
|